DBAtlas · Atlas d'exploitation des bases de données

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 Server

Que 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).

Ouvrir dans DBAtlas →

Autres entrées pour ce moteur