Forskel Mellem Slet og Trunker

Anonim

Slet vs Truncate

Begge SQL (Structure Query Language) kommandoer, Slet og Trunkate bruges til at slippe af med data, der er gemt i tabeller i en database. Slet er en DML (Data Manipulation Language) erklæring, og den fjerner nogle eller alle rækkerne i en tabel. 'Hvor-klausulen' bruges til at angive de rækker, der skal slettes, og hvis klausulen Hvor ikke bruges med Sletning, fjerner den alle data i tabellen. Truncate er en DDL (Data Definition Language) sætning, og den fjerner hele data fra tabellen. Begge disse kommandoer ødelægger ikke bordstrukturen og referencerne til tabellen, og kun dataene fjernes efter behov.

Slet sætning

Slet sætning tillader brugeren at fjerne data fra en eksisterende tabel i en database baseret på en bestemt tilstand, og 'Where-klausulen' bruges til at bestemme denne betingelse. Slet kommando henvises som en logget udførelse, fordi den kun sletter én række ad gangen og holder en post for hver række sletning i transaktionsloggen. Så det medfører, at operationen bliver langsommere. Slet er en DML-erklæring, og det er således ikke automatisk begået under udførelsen af ​​kommandoen. Derfor kan Slet operation rulles tilbage for at få adgang til data igen, hvis det kræves. Efter udførelsen af ​​Slet kommando skal den være forpligtet eller rullet tilbage for at gemme ændringer permanent. Slet sætning fjerner ikke tabelstrukturen i tabellen fra databasen. Det fordeler heller ikke det hukommelsesrum, der bruges af tabellen.

Den typiske syntaks for kommandoen Slet er angivet nedenfor.

Slet fra

eller

Slet fra hvor

Truncate Statement

Truncate statement fjerner alle data fra en eksisterende tabel i en database, men den bevarer den samme tabelstruktur, også integritetsbegrænsningerne, adgangsrettigheder og forhold til andre tabellerne. Så det er ikke nødvendigt at definere bordet igen, og den gamle bordstruktur kan bruges, hvis brugeren vil genbruge bordet igen. Truncate fjerner hele data ved at deallokere datasiderne, der bruges til at gemme data, og kun disse sidedokeringer bevares i transaktionsloggen. Derfor kan trunkate-kommandoen kun bruge færre system- og transaktionslogressourcer til drift, så det er hurtigere end andre relaterede kommandoer. Truncate er en DDL-kommando, så den bruger automatiske forpligtelser før og efter udførelsen af ​​erklæringen. Derfor kan trunker ikke rulle dataene igen på nogen måde. Det frigiver hukommelsesplads, der benyttes af bordet efter udførelsen. Men Truncate erklæring kan ikke anvendes på tabellerne, der refereres af udenlandske nøglebegrænsninger.

Følgende er den fælles syntaks for Truncate-erklæring.

TRUNCATE TABLE

Hvad er forskellen mellem Slet og Trunk?

1. Slet og trunker kommandoer fjerner data fra eksisterende tabeller i en database uden at skade bordstrukturen eller andre referencer til tabellen.

2. Slet kommando kan dog kun bruges til at slette bestemte rækker kun i en tabel ved hjælp af en relevant betingelse, eller at slette alle rækker uden nogen betingelse, mens kommandoen Truncate kun kan bruges til at slette hele data i tabellen.

3. Slet er en DML-kommando, og det kan rulle operationen om nødvendigt, men Truncate er en DDL-kommando, så det er en automatisk commit-erklæring og kan ikke rulles tilbage på nogen måde. Så det er vigtigt at bruge denne kommando nøje i databasehåndtering.

4. Truncate-operationen bruger færre systemressourcer og transaktionslogressourcer end sletningen. Derfor betragtes Truncate som hurtigere end Slet.

5. Desuden fordeler slet ikke plads, der bruges af tabellen, mens Truncate frigør det anvendte rum efter udførelsen, så sletning er ikke effektiv, hvis hele data slettes fra en database tabel.

6. Truncate må dog ikke bruge, når tabellen refereres af en fremmed nøglebegrænsning, og i så fald kan kommandoen Slet bruges i stedet for Truncate.

7. Endelig har begge disse kommandoer fordele og ulemper ved at anvende dem i Database Management Systems, og brugeren bør være opmærksom på at bruge disse kommandoer på passende vis for at opnå gode resultater.