tplanitz
Erfahrenes Mitglied
Hallo und frohe Weihnachten,
habe eine Frage zum Committen bei SEHR vielen Datensätzen (ca. 5.000.000). Ich muß eine Tabelle kopieren und jedesmal dauert das bis zu 3,5 Stunden und das ROLLBACK Segment hat einen Überlauf.
Jetzt habe ich mir überlegt das es gut wäre nach n Datensätzen ein COMMIT durchzuführen
das mache ich so:
Meine Frage ist jetzt ob es nicht sowas wie AUTO_COMMIT gibt und jemand da ein Beispiel für mich hätte wäre echt super. Die oben angegebene Funktion ist schon o.k. aber wahrscheinlich noch nicht so professionel für die Masse der Daten die ich kopieren muß.
Schon jetzt vielen Dank für ne Antwort und noch ein frohes Fest !!
habe eine Frage zum Committen bei SEHR vielen Datensätzen (ca. 5.000.000). Ich muß eine Tabelle kopieren und jedesmal dauert das bis zu 3,5 Stunden und das ROLLBACK Segment hat einen Überlauf.
Jetzt habe ich mir überlegt das es gut wäre nach n Datensätzen ein COMMIT durchzuführen
das mache ich so:
Code:
DECLARE
CommitAbstand INT :=0;
counter INT := 1;
BEGIN
FOR counter IN 1..500 -- (Hier würde dann 5.000.000 stehen ;o) )
LOOP
INSERT INTO my_stuff (Spaltenname) VALUES (counter);
CommitAbstand := CommitAbstand +1;
IF
CommitAbstand = 100
THEN COMMIT;
CommitAbstand :=0;
END IF;
END LOOP;
COMMIT COMMENT 'Auto Commit';
END;
/
Meine Frage ist jetzt ob es nicht sowas wie AUTO_COMMIT gibt und jemand da ein Beispiel für mich hätte wäre echt super. Die oben angegebene Funktion ist schon o.k. aber wahrscheinlich noch nicht so professionel für die Masse der Daten die ich kopieren muß.
Schon jetzt vielen Dank für ne Antwort und noch ein frohes Fest !!