Blocking & Deadlocks
Blocking entsteht, wenn eine Transaktion eine Sperre hält, die eine andere braucht. Kurzes Blocking ist normal; langes Blocking bremst spürbar und ist ein häufiger Grund für „die Anwendung hängt“.
Aktuelles Blocking
Blocking → Aktuell zeigt laufende Sperrketten in Echtzeit: welche Sitzung wen blockiert (Blocker → Blockierte), inklusive der beteiligten Anweisungen. So findet man den Kopf der Kette – die Sitzung, die alle anderen aufhält.
Verlauf
Blocking → Verlauf speichert vergangene Blocking-Ereignisse, damit man Muster erkennt (z. B. immer zur selben Uhrzeit, immer dieselbe Abfrage), auch wenn das Problem im Moment nicht aktiv ist.
Deadlocks
Ein Deadlock ist gegenseitiges Blockieren: zwei Sitzungen warten jeweils auf eine Sperre, die die andere hält. SQL Server löst das auf, indem er eine als Opfer abbricht.
Blocking → Deadlocks liest die Deadlock-Ereignisse aus der system_health-Extended-
Events-Ringpuffer, zeichnet den Deadlock-Graphen und zeigt die beteiligten Anweisungen
und Ressourcen – die Grundlage, um die Ursache (z. B. Zugriffsreihenfolge) zu beheben.
Blocking sagt wer wartet, die beteiligten Abfragen sagen warum. Für die Optimierung der auslösenden Abfrage hilft die Query-Analyse.