Tous les produits
Search
Centre de documentation

ApsaraDB RDS:Deadlocks

Dernière mise à jour :Oct 12, 2026

La page Deadlock d'ApsaraDB RDS for SQL Server affiche des détails tels que les heures de début des transactions, les ID de session, les ressources verrouillées et les types d'interblocage. Ces informations vous aident à localiser et résoudre rapidement les instructions SQL problématiques à l'origine des interblocages. Cette rubrique explique comment consulter les interblocages et leurs détails pour une instance ApsaraDB RDS for SQL Server dans la console ApsaraDB RDS.

Informations générales

Lorsqu'une transaction modifie une ressource, elle applique un verrou afin d'empêcher d'autres transactions de la modifier, ce qui garantit la cohérence des données.

Un interblocage survient généralement lorsque plusieurs transactions entrent en concurrence pour l'accès aux ressources. Par exemple, la transaction A verrouille la ressource A et tente de modifier la ressource B, tandis que la transaction B verrouille la ressource B et tente de modifier la ressource A. Cette dépendance circulaire provoque un interblocage, car chaque transaction attend que l'autre libère son verrou. Le système termine alors automatiquement la session présentant le coût d'annulation le plus faible (la session victime), ce qui entraîne l'échec de sa tâche. La figure suivante illustre ce scénario.

死锁

Types d'interblocage

La page Deadlock affiche les statistiques relatives aux cinq types d'interblocage suivants :

  • KeyDeadlock

  • ObjectDeadlock

  • RIDDeadlock

  • PageDeadlock

  • CompileDeadlock

Modes de verrouillage

Lorsqu'une transaction accède à une ressource, elle utilise différents modes de verrouillage (LockMode) selon le type d'accès. Ceux-ci incluent :

  • Verrou partagé (S) : permet de lire une ressource sans la modifier tant que le verrou est actif.

  • Verrou de mise à jour (U) : empêche les autres transactions d'acquérir un verrou exclusif sur une ressource, signalant ainsi l'intention de la modifier. Ce verrou est généralement utilisé pour éviter les interblocages susceptibles de se produire lorsque plusieurs sessions tentent de lire, verrouiller, puis mettre à jour une ressource.

  • Verrou exclusif (X) : empêche les autres transactions d'accéder à la ressource.

Prérequis

  • Cette fonctionnalité n'est pas disponible pour les instances ApsaraDB RDS for SQL Server 2008 R2 utilisant des disques cloud.

  • Cette fonctionnalité est disponible uniquement pour les instances ApsaraDB RDS for SQL Server dans les régions suivantes : Chine (Hangzhou), Chine (Shanghai), Chine (Qingdao), Chine (Pékin), Chine (Zhangjiakou), Chine (Hohhot), Chine (Ulanqab), Chine (Shenzhen), Chine (Heyuan), Chine (Guangzhou), Chine (Chengdu), Chine (Hong Kong), Singapour ou Émirats arabes unis (Dubaï).

Détails des interblocages

  1. Accédez à la page Instances. Dans la barre de navigation supérieure, sélectionnez la région où réside l'instance RDS. Localisez ensuite l'instance RDS et cliquez sur son ID.

  2. Dans le volet de navigation de gauche, choisissez Autonomy Services > Lock Optimization.

Page Deadlock

  • Deadlock count

    Cette section affiche le nombre d'interblocages récents et propose des statistiques pour quatre plages temporelles : interblocages au cours des dernières 24 heures, interblocages au cours des 7 derniers jours, interblocages au cours des deux dernières semaines et interblocages au cours du dernier mois.

  • Deadlock trend

    Cette section représente graphiquement l'évolution des interblocages sur une plage temporelle donnée. Vous pouvez effectuer les opérations suivantes :

    • Sélectionnez une Start Date et une End Date, puis cliquez sur Search pour afficher les informations relatives aux interblocages sur la plage temporelle spécifiée. La plage temporelle ne peut pas dépasser 30 jours.

    • Cliquez sur Previous Day, Last 7 Days ou Last Month pour afficher rapidement les informations relatives aux interblocages sur cette plage temporelle.

    • Placez le curseur sur un point temporel spécifique pour afficher les types et le nombre d'interblocages survenus à ce moment-là.

    • Cliquez sur l'icône 图标 située dans le coin supérieur droit du graphique de tendance pour modifier le style d'affichage du graphique ou le télécharger.

    死锁变化趋势

  • Deadlock Details

    Cliquez sur l'icône 加号 située à côté d'un enregistrement d'interblocage pour afficher les détails des sessions impliquées dans l'interblocage. Les détails incluent :

    • LastTranStarted : heure de début de la transaction.

    • SPID : ID de la session ayant initié la transaction.

    • IsVictim : indique si la session a été terminée (arrêtée) pour résoudre l'interblocage.

      Remarque

      SQL Server résout les interblocages à l'aide d'un thread interne qui les détecte périodiquement. Lorsqu'un interblocage est détecté, SQL Server termine la session présentant le coût d'annulation le plus faible parmi les sessions impliquées. Par exemple, comme une instruction SELECT a généralement un coût inférieur à celui d'une instruction UPDATE, le système privilégie la terminaison de la session exécutant l'instruction SELECT.

    • LogUsed : taille du journal généré par la session. Unité : octets.

    • LockMode : le mode de verrouillage.

    • WaitResourceDesc : description de la ressource attendue par la transaction actuelle.

    • ObjectOwned : objet déjà verrouillé.

    • ObjectRequested : objet dont la transaction actuelle demande le verrouillage.

    • WaitResource : ressource attendue par la transaction actuelle.

    • HostName : nom d'hôte de la transaction actuelle.

    • LoginName : nom du compte associé à la transaction actuelle.

    • Status : état de la transaction actuelle.

    • ClientApp : nom de l'application cliente utilisée par la transaction actuelle.

    • SQLText : détails de l'instruction SQL.

      Remarque

      Cliquez sur Click to Copy pour copier l'instruction SQL et faciliter le dépannage et l'analyse.

    Cliquez sur n'importe quelle ligne de la liste des détails pour afficher le diagramme d'interblocage correspondant ci-dessous.

  • Deadlock diagram

    Cette section affiche les relations entre les sessions impliquées dans l'interblocage et fournit des détails sur les ressources verrouillées. Vous pouvez cliquer sur le bouton Download pour télécharger un fichier XDL contenant les détails de l'interblocage actuel. Vous pouvez ouvrir et consulter ce fichier avec SQL Server Management Studio (SSMS).

    死锁关系图

Solutions et optimisation des interblocages

Comment résoudre les interblocages sur une instance ApsaraDB RDS for SQL Server