SQL Server-Betrieb

SQL-Server-Deadlocks: Vom Graphen zur Ursache

Ein Deadlock ist ein Zyklus, in dem Sitzungen gegenseitig benötigte Ressourcen halten. SQL Server beendet einen Teilnehmer, doch das Opfer ist nicht zwingend die Ursache.

SQL-Server-Deadlocks: Vom Graphen zur Ursache

Ein Deadlock ist ein Zyklus, in dem Sitzungen gegenseitig benötigte Ressourcen halten. SQL Server beendet einen Teilnehmer, doch das Opfer ist nicht zwingend die Ursache.

Was gemessen werden sollte

Erfassen Sie Deadlock-XML mit Extended Events. Prüfen Sie Prozesse, Ressourcen, Sperrmodi, Anweisungen, Transaktionsnamen und Opfer und ordnen Sie jede Anweisung der Anwendung zu.

Praktisches Vorgehen

Greifen Sie in konsistenter Reihenfolge auf Objekte zu, verkürzen Sie Transaktionen, verbessern Sie begründet die Zugriffspfade und implementieren Sie begrenzte Wiederholungen für Fehler 1205.

Was vermieden werden sollte

Verwenden Sie NOLOCK nicht als Universallösung, beschuldigen Sie nicht nur das Opfer und speichern Sie nicht nur einen Screenshot statt des vollständigen XML-Graphen.

Betriebliches Ergebnis

Eine dauerhafte Lösung entfernt oder verkürzt den Zyklus. Wiederholungen schützen Benutzer, ersetzen aber nicht die Ursachenbehebung.

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.

Frage zu diesem Artikel

Haben Sie eine Frage zu diesem Thema?

Beschreiben Sie, was Sie bewerten oder wo Sie nicht weiterkommen. Wir antworten mit einer praktischen Empfehlung.

Inquiries are not enabled in this preview.

Eine Frage zu diesem Artikel stellen