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 ServerWas 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).
Weitere Einträge zu dieser Datenbank
- 2627Violation of PRIMARY KEY / UNIQUE KEY constraint. Cannot insert duplicate key in object (Verletzung des PRIMARY-KEY-/UNIQUE-KEY-Constraints; doppelter Schlüssel nicht einfügbar)
- 2601Cannot insert duplicate key row in object with unique index. The duplicate key value is ... (doppelte Schlüsselzeile in Objekt mit Unique Index nicht einfügbar)
- 547The INSERT/UPDATE/DELETE statement conflicted with the FOREIGN KEY / CHECK constraint (Statement kollidiert mit FOREIGN-KEY-/CHECK-Constraint)
- 18456Login failed for user (Anmeldung für Benutzer fehlgeschlagen)