Ich muss Tabelle aktualisieren, die rund 93 Millionen Datensätze hat, am Anfang DB aktualisiert 10 k Datensätze pro 5 Sekunden, jetzt nach rund 60 Millionen aktualisierte Datensätze, nächste 10k Datensätze aktualisieren nimm 30-60 s, weiß nicht, warum ich Spalten aktualisieren muss, die null sind.
I-Schleife mit Commit jeweils 10 k Datensätze:Beschleunigen Sie Updates auf Oracle DB, die viele Datensätze
LOOP
UPDATE TABLE
SET DATE_COLUMN = v_hist_date
WHERE DATE_COLUMN IS NULL
AND ROWNUM <= c_commit_limit
AND NOT_REMOVED IS NULL;
EXIT WHEN SQL%ROWCOUNT = 0;
COMMIT;
END LOOP;
Sie irgendwelche Ideen, warum es so viel verlangsamen und wie ist möglich, dieses Update zu beschleunigen?
Ja, es ist Teil des PL/SQL-Codes – Krystian
Warum? Ich habe Spalte mit Null-Werten, wenn es alle aktualisiert, dann wird es beendet, wenn Update 0 Zeilen zurückgeben, hat es mich auf kleineren Tabellen mit z. 1-2 mln Datensätze und es dauerte viel weniger Zeit, aber es gab auch neuere db-Version – Krystian