Skillnaden mellan Delete och Truncate

Anonim

Radera vs Truncate

Kommandona SQL (Structure Query Language), Delete och Truncate används för att bli av med data lagrade i tabeller i en databas. Radera är ett DML-meddelande (Data Manipulation Language) och det tar bort några eller alla rader i en tabell. "Where-klausulen" används för att ange de rader som krävs för att raderas, och om Where-klausulen inte används med Radera-satsen, tar den bort alla data i tabellen. Truncate är ett DDL (Data Definition Language) -förklaring, och det tar bort hela data från tabellen. Båda dessa kommandon förstör inte bordstrukturen och referenserna till bordet, och endast data tas bort efter behov.

Radera meddelande

Radera meddelande tillåter användaren att ta bort data från en befintlig tabell i en databas baserat på ett angivet villkor och "Where-klausulen" används för att bestämma detta tillstånd. Ta bort kommandot hänvisas till som ett loggat utförande, eftersom det bara raderar en rad i taget och behåller en post för varje rad radering i transaktionsloggen. Så detta medför att operationen blir långsammare. Radera är ett DML-uttalande, och det görs inte automatiskt när man utför kommandot. Därför kan Ta bort operationen rullas tillbaka för att komma åt data igen, om det behövs. Efter utförandet av Delete-kommandot ska det vara begått eller rullat tillbaka för att spara ändringar permanent. Radera uttalandet tar inte bort tabellstrukturen i tabellen från databasen. Det fördelar inte heller det minnesutrymme som används av tabellen.

Den typiska syntaxen för Delete-kommandot anges nedan.

SLUTA FRÅN

eller

DELETE FRÅN

Truncate Statement

Truncate-satsen tar bort alla data från en befintlig tabell i en databas, men den bevarar samma tabellstruktur, även integritetsbegränsningarna, åtkomstbehörigheter och relationerna till andra tabellerna. Så det är inte nödvändigt att definiera tabellen igen, och den gamla bordstrukturen kan användas om användaren vill återanvända bordet igen. Truncate tar bort hela data genom att deallokera datasidorna som används för att hålla data, och endast dessa sidlokaliseringar förvaras i transaktionsloggen. Därför använder trunkate-kommandot endast färre system- och transaktionsloggresurser för drift, så det är snabbare än andra relaterade kommandon. Truncate är ett DDL-kommando, så det använder automatiska åtaganden före och efter genomförandet av uttalandet. Därför kan trunkate inte återställa data igen på något sätt. Det släpper ut minnesutrymmet som används av bordet efter utförandet. Men truncate uttalande kan inte tillämpas på tabellerna som refereras av främmande nyckelbegränsningar.

Följande är den vanliga syntaxen för Truncate-uttalandet.

TRUNCATE TABLE

Vad är skillnaden mellan Delete och Truncate?

1. Ta bort och avkorta kommandon ta bort data från existerande tabeller i en databas utan att skada tabellstrukturen eller andra referenser till tabellen.

2. Men med Delete-kommandot kan du bara radera specifika rader i en tabell med ett relevant villkor eller radera alla rader utan något villkor, medan kommandot Truncate endast kan användas för att radera hela data i tabellen.

3. Ta bort är ett DML-kommando, och det kan rulla tillbaka operationen om det behövs, men Truncate är ett DDL-kommando, så det är ett automatiskt commit-uttalande och kan inte rullas tillbaka på något sätt. Så det är viktigt att använda detta kommando noggrant i databashantering.

4. Avkorta operationen förbrukar färre systemresurser och transaktionsloggresurser än Delete-funktionen, därför anses Truncate vara snabbare än Delete.

5. Dessutom fördelar inte Delete det utrymme som används av tabellen, medan Truncate frigör det utrymme som används efter exekveringen, så Delete är inte effektivt om man raderar hela data från en databastabell.

6. Truncate får dock inte använda när tabellen refereras av en främmande nyckelbegränsning, och i så fall kan kommandot Radera användas istället för Truncate.

7. Slutligen har båda dessa kommandon fördelar och även nackdelar med att tillämpa dem i Database Management Systems och användaren bör vara medveten om att använda dessa kommandon på lämpligt sätt för att uppnå bra resultat.