Oracle - löschen großer Tabellen

Hallo Oracler,

ich habe das Problem, dass ich schnell und einfach in Oracle 8 mehrere sehr große Tabellen entleeren muß. Dazu währe es sicherlich sinnvoll das Logging zu deaktivieren o.ä.

Kann mir jemand sagen wie ich dies bei Oracle bewerkstelligen kann?

Gruß und schon mal danke
Karsten

Hi Karsten,

Am fixesten sollte ein

TRUNCATE TABLE my\_table;

funktionieren. Vorsicht: Es gibt beim TRUNCATE keine Transaktionslogik! Ein Rollback ist also nicht möglich. Außerdem schmeißt der TRUNCATE zuvor angelegt Extents weg, wenn also große Datenmengen gelöscht und sofort anschließend wieder eingespielt werden verlierst Du potentiell Zeit für die Neuanlage der zuvor gelöschten Extents. In dem Fall solltest Du noch ein ‚REUSE STORAGE‘ anhängen. Außerdem darf die zu Löschende Tabelle in keinem Foreign key constraint referenziert werden (gleichgültig, ob die child table auch wirklich Daten enthält), der ‚enabled‘ ist. Sieh Dir am Besten noch mal die Doku an bevor Du es einsetzt. Oder frag noch mal nach (kannst mir gerne auch ein mail schreiben)

Gruß,
Martin

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