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.