Deadlocks SQL Server : du graphe à la cause racine
Un deadlock est un cycle où des sessions détiennent des ressources nécessaires aux autres. SQL Server termine un participant, mais la victime n'est pas forcément la cause.
Deadlocks SQL Server : du graphe à la cause racine
Un deadlock est un cycle où des sessions détiennent des ressources nécessaires aux autres. SQL Server termine un participant, mais la victime n'est pas forcément la cause.
Ce qu'il faut mesurer
Capturez le XML avec Extended Events. Examinez processus, ressources, modes de verrouillage, instructions, transactions et victime, puis reliez chaque instruction à l'opération applicative.
Approche pratique
Accédez aux objets dans un ordre cohérent, raccourcissez les transactions, améliorez les accès lorsque cela est justifié et prévoyez des nouvelles tentatives limitées pour l'erreur 1205.
Ce qu'il faut éviter
N'utilisez pas NOLOCK comme remède universel, n'accusez pas seulement la victime et ne conservez pas uniquement une capture d'écran du graphe.
Résultat opérationnel
La correction durable supprime ou raccourcit le cycle. Les nouvelles tentatives protègent l'utilisateur sans remplacer l'analyse de fond.
Checklist de production
Établissez une référence et définissez l'amélioration attendue. Testez avec des données et une concurrence représentatives. Conservez la configuration ou le plan d'origine, préparez un retour arrière et surveillez le prochain pic normal de charge.
Pour appliquer cette méthode à un environnement SQL Server précis, utilisez le formulaire ci-dessous et indiquez la version, la taille de la base, le profil de charge et les éléments déjà collectés.