DB2 - leeren großer Tabellen

Hallo DB2’ler,

ich möchte mehrere sehr große Tabellen einer DB2 Datenbank leeren. Mit „delete tabellenname“ ginge es, aber es ist zu langsam und zu speicherintensiv. Ich benötige keine Transaktionskontrolle also auch keine Rollback Funktion etc.

Bei Oracle gibt es „truncate“ und bei Informix kann man das einfach durch abschalten der Transaktionsmonitore bewerkstelligen. Ich kann mir denken, dass es für DB2 etwas entsprechendes gibt.

Wer kann mir helfen.

Schon mal Danke
Karsten

das schnellste unter informix ist die tabelle zu löschen (drop table) und dann wieder neu zu erzeugen. schreib doch einfach ein script, welches genau das mach.

Hallo Karsten.

Am schnellsten kann man den Inhalt einer DB2-Tabelle mit dem LOAD-Utility und einer leeren Eingabedatei löschen.

LOAD DATA LOG YES RESUME REPLACE INDDN SYSREC00 INTO TABLE T…

Die Angabe RESUME REPLACE bewirkt, dass vor dem Laden alle Tablespace- ind Inexinhalte komplett gelöscht werden.

ACHTUNG: Geht nur, wenn im Tablespace nur eine Tabelle enthalten ist, bzw. werden alle Tabellen Indexe des Tablespace gelöscht, unabhängig davon, welche Tabelle im Anschluss geladen wird.

Bei Segmented Tabelspace muss Ladereihenfolge beachtet werden.

Ciao Kai.

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]