Ich versuche, die Leistung oder interne Implementierung für WAITFOR in T-SQL herauszufinden, durch MSDN und Stackoverflow und andere Seiten ohne Glück, hier ist meine Frage
Für den unteren Code möchte ich die obersten 10.000 Zeilen aus der Tabelle DUMMY
löschen. Ich möchte, dass dieser Löschauftrag den geringsten Leistungseinfluss auf die anderen Jobs der Datenbank hat und anderen (falls vorhanden) Priorität gibt. Also mache ich es 100 Zeilen gleichzeitig löschen und mache es 100 mal mit Ruhezeit in zwei benachbarten Löschungen.
Frage:
Wird diese Transaktion während der WAITFOR
Blockierungszeit CPU verbrauchen oder einfach nur im Leerlauf bleiben und eine Sekunde später auf ein Ereignis warten?
Wenn während dieser 1 Sekunde andere Transaktionen versuchen, INSERT/UPDATE
in der Tabelle DUMMY
zu ermitteln, wer erhält die Priorität?
Berücksichtige deine Hilfe oder irgendwelche Einsichten dafür
%Vor%Sie können dies mit 2 Abfragefenstern sehen:
%Vor%Dann in der anderen
%Vor%Hinweis: SQL Server 2012 SP1 aber AFAIK-Verhalten ist das gleiche
Punkt 2, Entschuldigung, das habe ich verpasst
Eine andere Sitzung wird die Tabelle ändern, während WAITFOR ausgeführt wird. Es ist keine Sperre.
Tags und Links sql-server tsql