1205: Transaction (Process ID) was deadlocked on lock resources with another process and has been chosen as the deadlock victim (transaction choisie comme victime de l'interblocage)
SQL ServerQue signifie cette erreur ?
Deux transactions ou plus attendent chacune des verrous détenus par l'autre (un interblocage). Pour rompre le cycle, SQL Server choisit une transaction comme victime et l'annule.
Cause
Les causes typiques sont des transactions verrouillant les tables/lignes dans des ordres différents, des transactions de longue durée, de larges parcours dus à des index manquants, l'escalade de verrous et une forte concurrence.
Comment la corriger
Interceptez l'erreur 1205 dans l'application et relancez automatiquement la transaction. Accédez aux objets dans le même ordre dans chaque transaction et gardez les transactions courtes. Examinez le graphe d'interblocage : utilisez les Extended Events (la session system_health) ou le trace flag 1222 pour les détails. Ajoutez des index appropriés pour réduire les parcours et les verrouillages. Si nécessaire, évaluez le niveau d'isolation READ COMMITTED SNAPSHOT (RCSI).
Autres entrées pour ce moteur
- 2627Violation of PRIMARY KEY / UNIQUE KEY constraint. Cannot insert duplicate key in object (violation de contrainte PRIMARY KEY / UNIQUE KEY ; clé en double non insérable)
- 2601Cannot insert duplicate key row in object with unique index. The duplicate key value is ... (ligne à clé en double non insérable dans un objet avec index unique)
- 547The INSERT/UPDATE/DELETE statement conflicted with the FOREIGN KEY / CHECK constraint (instruction en conflit avec une contrainte FOREIGN KEY / CHECK)
- 18456Login failed for user (échec de connexion pour l'utilisateur)