Zwei Methoden in SQL existieren, um leere Datenbank -Tabellen. Eine davon ist die Funktion "Löschen" und die andere ist " TRUNCATE . " Sowohl die Integrität der Tabelle leert es , aber jeder unterscheidet sich in den Mechanismen verwendet, um Datensätze zu entfernen, insbesondere in Bezug auf Betriebsarten , Datenwiederherstellung, Geschwindigkeit und Ressourcenverbrauch . Die Funktion "Löschen" wird als Data Manipulation Language (DML )-Funktion kategorisiert , während " TRUNCATE " gehört zur Familie von Funktionen , die sich mit Data Definition Language (DDL) . Betriebsarten
" TRUNCATE " Operation ist eine Alles-oder -Nichts- Ansatz, der Speicherplatz für die Daten in der Tabelle vorbehalten freigibt . Die Operation beseitigt auch Zeiger auf Indizes. Daten weiterhin in der Tabelle vorhanden , bis sie mit neuen Daten überschrieben ist . Umgekehrt , entfernt die " ENTF "-Betrieb einen Datensatz zu einer Zeit , die Aufzeichnung der Details für jeden Datensatz in einer transaktionalen Protokoll vor seiner Entfernung. Die "Löschen "-Betrieb erfordert die Transaktion festgeschrieben werden , während ein " TRUNCATE " implizit Commit für die Transaktion . A " ENTF "-Anweisung ermöglicht es dem Benutzer, bedingt entfernen Datensätze, die bestimmte Kriterien erfüllen.
Data Recovery
A " TRUNCATE " Operation entfernt Daten aus einer Tabelle ohne Speicherung Rollback Informationen . Sobald der Befehl ausgeführt wird, ist die Wiederherstellung nicht möglich, wenn der Raum bereits vor dem Daten zugewiesen wurde mit neuen Daten überschrieben . Umgekehrt kann Rollback zu einem früheren Zustand in einem " ENTF "-Operation auftreten, weil jeder Datensatz dem Rollback Tabellenbereich begangen wird vor der Entfernung . Fehlende Daten können dann von den Rollback Protokolle wiederhergestellt werden , vorausgesetzt, die protokolliert noch existieren.
Geschwindigkeit und Ressourcenverbrauch
Der " TRUNCATE " Operation ist eine High-Speed- Löschvorgang , die wenig Ressourcen -Datenbank aufgrund der Modus, in dem es führt die alles-oder -Nichts- Lösch-Funktionen benötigt . "DELETE" Operationen auf großen Datenmengen , auf der anderen Seite , kann einige Zeit dauern aufgrund der Ausgabe der Aufzeichnung einer Zeile zu einem Zeitpunkt im Rollback Tabellenbereich . Als Ergebnis konnte die physikalische Größe der beteiligten Tabellen Ballon vor dem Entfernen von Datensätzen schrumpfen die Tabelle wieder in eine akzeptable Größe .
Ausnahmen für Referentielle Constraints
" ; TRUNCATE " Operationen können nur dann auftreten, wenn alle Fremdschlüsseleinschränkungen entfernt oder deaktiviert sind vor ihrer Hinrichtung. Die gleiche Regel gilt für " ENTF "-Operationen . Dies ist aufgrund der Regel auf Datenbanken auferlegt, um Primär-und Fremdschlüssel-Beziehungen zu definieren und die angibt , dass "kein Fremdschlüssel muss baumeln . " Daher wird " TRUNCATE " und "Löschen "-Operationen fehl, wenn ein Primärschlüssel /Fremdschlüsseleinschränkung im Ort.