Note
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier les répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de changer de répertoire.
S’applique à :SQL Server
Azure SQL Database
Azure SQL Managed Instance
Base de données SQL dans Microsoft Fabric
Détails
| Attribut | Valeur |
|---|---|
| Nom du produit | SQL Server |
| ID de l’événement | 1205 |
| Source de l’événement | MSSQLSERVER |
| Composant | SQLEngine |
| Nom symbolique | LK_VICTIM |
| Texte du message | La transaction (ID de processus %d) a été bloquée sur les ressources %.*ls par un autre processus et a été choisie comme victime. Relancez la transaction. |
Explication
Des ressources font l’objet d’accès dans un ordre conflictuel sur des transactions distinctes, ce qui provoque un interblocage. Par exemple :
-
Transaction1mises à jourTable1.Row1, tandis que transaction2 met à jourTable2.Row2 -
Transaction1tente de mettre à jourTable2.Row2mais est bloquée, carTransaction2n’a pas encore validé et n’a pas publié ses verrous - Transaction2 tente maintenant de mettre à jour
Table1.Row1mais est bloqué, carTransaction1n’a pas validé et n’a pas libéré ses verrous - Un blocage se produit parce que
Transaction1attend queTransaction2se termine, maisTransaction2attend queTransaction1se termine.
Le système détecte ce blocage et choisit l’une des transactions impliquées en tant que victime. Il émet ensuite ce message d’erreur, en annulant la transaction de la victime. Pour plus d’informations, consultez Deadlocks.
Action de l’utilisateur
Les blocages sont dans la plupart des cas des problèmes liés à l’application et nécessitent que les développeurs d’applications apportent des modifications de code. Une approche lorsque vous recevez l’erreur 1205 consiste à réexécuter les requêtes. Pour plus d’informations, consultez 'application Deadlock Simulator for Developers : How to Handle a SQL Deadlock issue in Your App.
Vous pouvez également réviser l'application pour éviter les blocages. La transaction choisie en tant que victime peut être retentée et réussira probablement, en fonction des opérations exécutées simultanément.
Pour empêcher ou éviter les blocages de se produire, envisagez d’avoir toutes les lignes d’accès aux transactions dans le même ordre (Table1, puis Table2). De cette façon, bien que le blocage puisse se produire, un blocage est évité.
Pour plus d’informations, consultez Gestion des interblocages et réduction des interblocages.