2010-12-17 11 views
0

Ich habe eine gespeicherte Prozedur, die ein paar Millionen Datensätze löscht und dann geänderte wieder einfügt.So teilen Sie meine Transaktionen

Im Moment habe ich meine Transaktionen organisiert so:

begin tran - delete records - commit tran 
begin tran - insert records - commit tran 

Ich frage mich allerdings, ob die folgende möglicherweise nicht schneller sein:

begin tran - delete records - insert records - commit tran 

Denn dann könnte es erkennen, dass die neuen Datensätze nehmen der Ort der Alten und somit schneller sein?

+0

Warum nicht nur die vorhandenen ersetzen, die ersetzt werden, oder irre ich Sie? – tvanfosson

+0

Sie sind nicht die gleichen, sie unterscheiden sich in Anzahl und Inhalt – thomaspaulb

Antwort

0

Die Transaktionsgrenzen sollten auf der Logik Ihrer Arbeit basieren. Im ersten Szenario können Sie die Datenbank möglicherweise in dem Zustand belassen, in dem die alten Datensätze gelöscht werden, die neuen jedoch nicht eingefügt werden. Ist das akzeptabel? Kannst du dich erholen? Wenn nicht, sollten Sie das zweite Szenario verwenden.

+0

Danke .. Sie haben Recht, Transaktionen sind Rollback/Recovery zu erleichtern, nicht für die Geschwindigkeit. – thomaspaulb

Verwandte Themen