SQL-Server-Blocking, Wartezeiten und der Head Blocker
Eine lange Liste blockierter Sitzungen lässt jede Abfrage verdächtig erscheinen. Meist bestimmt eine Transaktion am Anfang der Kette Dauer und Auswirkung.
SQL-Server-Blocking, Wartezeiten und der Head Blocker
Eine lange Liste blockierter Sitzungen lässt jede Abfrage verdächtig erscheinen. Meist bestimmt eine Transaktion am Anfang der Kette Dauer und Auswirkung.
Was gemessen werden sollte
Erfassen Sie Blocking-Kette, Wartetyp, Ressource, Transaktionsbeginn, offene Anweisung, Isolationsstufe, Anwendung und aktuellen Plan. Trennen Sie Sperrwartezeiten von CPU, I/O, Speicher und Parallelität.
Praktisches Vorgehen
Finden Sie den Head Blocker vor dem Beenden nachgelagerter Sitzungen, klären Sie die offene Transaktion, verkürzen Sie deren Umfang, verbessern Sie begründete Zugriffspfade und erkennen Sie verwaiste Transaktionen.
Was vermieden werden sollte
Beenden Sie nicht alle blockierten Sitzungen, lesen Sie kumulative Wartezeiten nicht ohne Zeitfenster und nutzen Sie NOLOCK nicht ohne Akzeptanz falscher Ergebnisse.
Betriebliches Ergebnis
Eine gute Reaktion stellt den Dienst wieder her und bewahrt genügend Nachweise zur Vermeidung einer Wiederholung.
Checkliste für die Produktion
Erfassen Sie eine Ausgangsbasis und definieren Sie die erwartete Verbesserung. Testen Sie mit repräsentativen Daten und realistischer Parallelität. Sichern Sie die ursprüngliche Einstellung oder den Plan, bereiten Sie einen Rollback vor und überwachen Sie die nächste normale Lastspitze.
Wenn Sie diese Methode auf eine konkrete SQL-Server-Umgebung anwenden möchten, nutzen Sie das Frageformular unten und nennen Sie SQL-Server-Version, Datenbankgröße, Lastprofil und bereits erfasste Nachweise.