Welche Auswirkungen hat WAITFOR auf andere Prozesse und Transaktionen?

7

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:

  1. 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?

  2. 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%     
Ted Xu 23.05.2013, 14:28
quelle

1 Antwort

18
  • Es verbraucht keine CPU
  • Status = ausgesetzt

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.

    
gbn 23.05.2013, 14:32
quelle

Tags und Links