Commit bei MERGE-Operation

Hallo zusammen,

Ich benutze die Merge-Operation, um eine Tabelle upzudaten bzw. zu befüllen.

Da mehrere Millionen Datensätze bei Inserts vorkommen können, muss der Undo-Tablespace extrem groß sein.

Gibt es die Möglichkeit, zwischendurch ein commit auszuführen, z.B. alle 100.000 Sätze, damit der Tablespace immer wieder freigegeben wird?

Danke für Eure Unterstützung!

Viele Grüße,
Philipp

Hi!

Ich benutze die Merge-Operation, um eine Tabelle upzudaten
bzw. zu befüllen.

Da mehrere Millionen Datensätze bei Inserts vorkommen können,
muss der Undo-Tablespace extrem groß sein.

Gibt es die Möglichkeit, zwischendurch ein commit auszuführen,
z.B. alle 100.000 Sätze, damit der Tablespace immer wieder
freigegeben wird?

Danke für Eure Unterstützung!

Mit einem einzigen Befehl?
Eine Möglichkeit wäre ein Cursor mit einem Zähler …

Grüße,
Tomh

Ich benutze die Merge-Operation, um eine Tabelle upzudaten
bzw. zu befüllen.

Da mehrere Millionen Datensätze bei Inserts vorkommen können,
muss der Undo-Tablespace extrem groß sein.

Gibt es die Möglichkeit, zwischendurch ein commit auszuführen,
z.B. alle 100.000 Sätze, damit der Tablespace immer wieder
freigegeben wird?

Hallo Philipp,
wenn dir wirklich der Undo-TB überläuft, bleibt nur als Alternative eine PL/SQL-Lösung (ich vermute mal, du hast eine Oracle-DB). Such mal nach PL/SQL Bulk-Operations …

Wird dadurch aber auch nicht schneller.

gruss
bernhard