Performanteste Methode 100'000 Updates in Oracle DB zu schreiben

Hi,

was ist in Java die Performanteste Methode 100’000+ Updates in einer Oracle DB zu machen?

danke für Tipps und Beispiele

Von was für Updates reden wir hier?
100.000+ Java-Objekte zurück in die DB schreiben und da aktualisieren oder 100.000+ Stellen in der DB zu aktualisieren (zweiteres wäre eher das Problem von einem elegantem Statement, als ein Java-Problem).

Gruß

ich will im Prinzip einfach nur so schnell wie möglich ein .SQL Skript mit mehr als 100000 Updates (je ein Attribut) ausführen.

Wenn die Insert-Statements gleichartig sind, dann dürfte ein prepared Statement, welches du einmalig initialisierst und dann in einer Schleife aufrufst schon “ziemlich performant” sein. Ggf. ist es aber auch schneller, wenn du mehrere Insert in einer Query absetzt:
[sql]INSERT INTO TABLE mytable (col1, col2) VALUES (1, 2,), (3, 4), (2, 1) …[/sql]
Da hilft letztendlich nur messen.
Was auch ein Flaschenhals sein könnte, ist das Einlesen der Werte in das Programm, das die Queries absetzt.

MySQL z.B. bietet dafür Transaktionen an.
http://dev.mysql.com/doc/refman/5.1/de/commit.html
Alle zwischen TRANSACTION BEGIN und TRANSACTION COMMIT übertragenen Statements werden zu einem Statement auf DB-Seite zusammengefasst und erst bei TRANSACTION COMMIT ausgeführt. TRANSACTION COMMIT liefert danach einen Fehlerstatus, sodass man evtl. in der Lage ist fehlerhafte Einzelstatements zu entlarven und das Ganze mit TRANSACTION ROLLBACK rückgängig zu machen.

edit: so ungefähr jedenfalls… :wink:

Batch Updates verwenden.