2016-08-10 3 views
0

Kann jemand erklären, wie truncate in der Netezza-Datenbank funktioniert und warum alle Datensätze schnell gelöscht werden. Die interne Anmeldung beim Löschen aller Datensätze aus Tabellen muss bekannt sein.Funktionsweise des Befehls "Abschneiden" in Netezza

+0

Haben Sie Ihre Fragen beantwortet oder waren Sie auf der Suche nach etwas anderem? – ScottMcG

Antwort

0

Das Verhalten variiert ein bisschen nach Version, aber ab Version 7.2.0.4 kann TRUNCATE gleichzeitig mit anderen Abfragen für die gleiche Tabelle sowie während der Ausführung von Sicherungen ausgeführt werden.

Wenn TRUNCATE auftritt, notiert das System die TXID der Transaktion, in der TRUNCATE ausgeführt wird.

Jede Abfrage, die eine Transaktion vor dieser TXID gestartet hat, sieht die Tabelle so, wie sie vor der Ausführung von TRUNCATE war.

Jede Abfrage, die auf die Tabelle während einer Transaktion verweist, die nach dem Festschreiben der TRIDCATE-TXID gestartet wurde, zeigt eine leere Tabelle an, weil sie alle durch niedrigere TXIDs erstellten Zeilen aus der Scanliste entfernen kann.

Folglich ist TRUNCATE sehr schnell, weil es nur jeden gelöschten Bereich markieren muss. Sobald alle ausstehenden Transaktionen, die früher als die TXID des TRUNCATE angegeben wurden, ausgeführt wurden, wird das System den gesamten Speicher in Ruhe in den Pool zurückgeben.