Im Moment sieht der Prozess, den wir für das Einfügen von Datensätzen verwenden, ungefähr so aus:
(und beachten Sie, dass "Satz von Datensätzen" so etwas wie ein Personendatensatz zusammen mit ihren Adressen, Telefonnummern oder anderen verbundenen Tabellen bedeutet).
- Starten Sie eine Transaktion.
- Fügen Sie eine Reihe von Datensätzen ein, die miteinander in Beziehung stehen.
- Commit, wenn alles erfolgreich war, sonst Rollback.
- Gehen Sie zurück zu Schritt 1 für den nächsten Satz von Datensätzen.
Sollten wir mehr in dieser Richtung tun?
- Starten Sie eine Transaktion am Anfang des Skripts
- Starten Sie einen Speicherpunkt für jeden Satz von Datensätzen.
- Einfügen einer Reihe von Bezugsdatensätzen.
- Gehen Sie bei einem Fehler zum Speicherpunkt zurück, fahren Sie fort, wenn alles erfolgreich war.
- Schließen Sie die Transaktion am Anfang des Skripts ab.
Nachdem ich einige Probleme mit ORA-01555 hatte und einige Ask Tom-Artikel gelesen habe (wie diese ), denke ich darüber nach, das zweite Verfahren auszuprobieren. Wie Tom schon sagte, sollte der Beginn einer neuen Transaktion natürlich von den geschäftlichen Erfordernissen abhängig gemacht werden. Ist der zweite Prozess einen Versuch wert, oder ist er eine schlechte Idee?