DBAtlas · Atlas für Datenbankbetrieb

1205: Transaction (Process ID) was deadlocked on lock resources with another process and has been chosen as the deadlock victim (Transaktion als Deadlock-Opfer gewählt)

SQL Server

Was bedeutet das?

Zwei oder mehr Transaktionen warten jeweils auf Sperren, die die andere hält (ein Deadlock). Um den Zyklus aufzulösen, wählt SQL Server eine Transaktion als Opfer und setzt sie zurück.

Ursache

Transaktionen, die Tabellen/Zeilen in unterschiedlicher Reihenfolge sperren, lang laufende Transaktionen, breite Scans wegen fehlender Indizes, Lock Escalation und hohe Parallelität sind die typischen Ursachen.

Lösung

Fange Fehler 1205 in der Anwendung ab und wiederhole die Transaktion automatisch. Greife in jeder Transaktion in derselben Reihenfolge auf Objekte zu und halte Transaktionen kurz. Untersuche den Deadlock-Graphen: Verwende Extended Events (die Session system_health) oder Trace Flag 1222 für Details. Lege passende Indizes an, um Scans und Sperren zu reduzieren. Bewerte bei Bedarf die Isolationsstufe READ COMMITTED SNAPSHOT (RCSI).

In DBAtlas öffnen →

Weitere Einträge zu dieser Datenbank