Diferența între ștergere și trunchiere

Ștergeți versiunea Truncate

Ambele comenzi SQL (Structure Query Language), Delete și Truncate sunt folosite pentru a scăpa de datele stocate în tabele într-o bază de date. Ștergerea este o instrucțiune DML (Data Manipulation Language) și elimină unele sau toate rândurile unei tabele. Clauza "Where" este utilizată pentru a specifica rândurile care trebuie șterse și dacă clauza Where nu este folosită cu instrucțiunea Delete șterge toate datele din tabel. Truncate este o instrucțiune DDL (Data Definition Language) și elimină date întregi din tabel. Ambele comenzi nu distrug structura tabelului și referințele la tabel și numai datele sunt eliminate după cum este necesar.

Ștergeți declarația

Instrucțiunea de ștergere permite utilizatorului să elimine datele dintr-un tabel existent într-o bază de date bazată pe o condiție specificată, iar clauza "Where where" este utilizată pentru a determina această condiție. Comanda de ștergere este menționată ca execuție înregistrată, deoarece șterge doar un singur rând în același timp și păstrează o înregistrare pentru fiecare ștergere de rând din jurnalul de tranzacții. Deci, acest lucru face ca operația să fie mai lentă. Ștergerea este o instrucțiune DML, deci nu este angajată automat în timpul executării comenzii. Prin urmare, funcția Ștergere poate fi derulată din nou pentru a accesa din nou datele, dacă este necesar. După executarea comenzii de ștergere, aceasta trebuie să fie angajată sau derulată înapoi pentru a salva permanent modificările. Instrucțiunea de ștergere nu elimină structura tabelului din tabel. De asemenea, acesta nu distruge spațiul de memorie utilizat de tabel.

Sintaxa tipică pentru comanda Ștergere este prezentată mai jos.

Ștergeți din

sau

DELETE FROM WHERE

Scurtă declarație

Instrucțiunea Truncate elimină toate datele dintr-o tabelă existentă dintr-o bază de date, dar păstrează aceeași structură de tabel, constrângerile de integritate, privilegiile de acces și relațiile cu alte tabele. Deci, nu este necesară definirea tabelului din nou, iar vechea structură de tabelă poate fi utilizată, dacă utilizatorul dorește să reutilizeze tabelul din nou. Truncate elimină date întregi prin dealocarea paginilor de date utilizate pentru păstrarea datelor și numai aceste dealocări de pagină sunt păstrate în jurnalul de tranzacții. Prin urmare, comanda truncate utilizează doar mai puține resurse de sistem și jurnal de tranzacții pentru operare, deci este mai rapidă decât alte comenzi conexe. Truncate este o comandă DDL, deci utilizează angajamente auto înainte și după executarea instrucțiunii. Prin urmare, trunchiul nu poate relua din nou datele în nici un fel. Eliberă spațiul de memorie folosit de tabel după execuție. Însă instrucțiunea Truncate nu poate fi aplicată pe tabelele care se referă la constrângerile de cheie străine.

În continuare, este sintaxa comună pentru instrucțiunea Truncate.

TRUNCATE TABLE

Care este diferența dintre Ștergeți și Ștergeți?

1. Ștergerea și trunchierea comenzilor elimină datele din tabelele existente dintr-o bază de date fără a afecta structura tabelului sau alte referințe la tabel.

2. Cu toate acestea, comanda Ștergere poate fi utilizată pentru a șterge rânduri specifice numai într-un tabel folosind o condiție relevantă sau pentru a șterge toate rândurile fără condiții, în timp ce comanda Truncate poate fi utilizată numai pentru ștergerea întregului date din tabel.

3. Șterge este o comandă DML și poate relua operația dacă este necesar, dar Truncate este o comandă DDL, deci este o declarație de auto-comitere și nu poate fi reluată în nici un fel. Prin urmare, este important să folosiți cu atenție această comandă în gestionarea bazelor de date.

4. Funcția truncate consumă mai puține resurse de sistem și resurse de jurnalizare a tranzacțiilor decât operația de ștergere, prin urmare Truncate este considerată mai rapidă decât Delete.

5. De asemenea, ștergerea nu distinge spațiul utilizat de tabel, în timp ce Truncate eliberează spațiul utilizat după executare, deci Ștergerea nu este eficientă în cazul ștergerii întregului date dintr-o tabelă de baze de date.

6. Cu toate acestea, nu este permisă utilizarea Truncate atunci când tabelul este referit de o constrângere de chei străine și în acest caz comanda Delete poate fi folosită în loc de Truncate.

7. În cele din urmă, ambele comenzi au avantaje și dezavantaje în aplicarea acestora în sistemele de gestionare a bazelor de date, iar utilizatorul ar trebui să fie conștient de utilizarea corespunzătoare a acestor comenzi pentru a obține rezultate bune.