Tous les produits
Search
Centre de documentation

ApsaraDB RDS:Lock Blocking

Dernière mise à jour :Oct 12, 2026

Cette rubrique explique comment utiliser la page de statistiques sur le blocage des verrous pour identifier rapidement les sessions à l'origine d'un blocage prolongé et consulter leurs détails.

Prérequis

  • L'instance doit utiliser un disque cloud.

  • Cette fonctionnalité n'est pas disponible pour les instances ApsaraDB RDS for SQL Server 2008 R2 qui utilisent 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ï).

Contexte

Dans SQL Server, afin de garantir la cohérence des données, le système acquiert un verrou sur une ressource lorsqu'une session la modifie. Cela empêche les autres sessions concurrentes d'accéder à cette ressource ou de la modifier. Dans des conditions normales, le verrou est maintenu pendant une courte période et libéré une fois la modification terminée, permettant ainsi à la session suivante d'accéder à la ressource. Toutefois, des problèmes tels qu'une instruction SQL lente peuvent entraîner un verrouillage prolongé de la ressource, ce qui affecte considérablement les performances.

Pour résoudre ce problème, ApsaraDB RDS for SQL Server met à disposition une page de statistiques sur le blocage des verrous. Sur cette page, vous pouvez rapidement trouver des informations telles que l'ID du processus serveur (SPID) de la session bloquante, l'heure à laquelle le blocage s'est produit et l'instruction SQL à l'origine du blocage. Ces informations vous aident à identifier la cause racine.

Fonctionnement

Une session bloquée pendant environ 2 secondes ne provoque généralement pas de problèmes majeurs. Cependant, si plusieurs sessions sont bloquées de manière répétée pendant plus de 2 secondes sur une courte période, cela peut avoir un impact significatif sur l'ensemble du système.

Le système échantillonne le blocage des verrous toutes les 10 secondes. À chaque point d'échantillonnage, si une session exécute une instruction SQL depuis plus de 2 secondes et bloque d'autres sessions, le système capture et enregistre ces informations sur la page de statistiques sur le blocage des verrous.

Procédure

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

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

  3. Cliquez sur l'onglet Blocking pour afficher les détails du blocage de l'instance.

Description de la page

  • Blocking Overview

    Affiche le nombre d'événements de blocage sur une plage de temps spécifiée.

    Les plages de temps incluent Last 24 Hours, Last 7 Days, Last 14 Days et Last 30 Days.

  • Blocking Duration Trend

    Présente un graphique de tendance de la durée de blocage pour la période sélectionnée.

    Survolez un point dans le temps pour afficher ses détails de blocage, qui incluent les éléments suivants :

    • L'heure à laquelle le blocage s'est produit.

    • Processes_blocked : Le nombre de sessions bloquées.

    • Uncommited_tran : Le nombre de transactions non validées.

      Remarque

      Les transactions non validées ne libèrent pas les verrous.

    • Le QueryHash (une valeur de hachage d'une instruction SQL spécifique) et la durée de blocage correspondante.

    阻塞趋势

  • Blocking Source Details

    Affiche des informations détaillées sur la source du blocage. Les détails incluent les éléments suivants :

    • SPID : Le SPID de la session bloquante.

    • QueryHash : Une valeur de hachage générée à partir de l'instruction SQL. Les instructions SQL du même type partagent le même QueryHash.

    • Wait Type : La raison pour laquelle la session en attente est bloquée. Pour plus d'informations sur les types d'attente, consultez Wait Types.

    • Execution Duration (ms) : La durée d'exécution de la session.

    • SQL : L'instruction SQL à l'origine du blocage.

      Remarque

      Survolez l'instruction SQL et cliquez sur l'icône 复制复制 qui apparaît à droite pour copier l'instruction SQL.

    • Time : L'heure à laquelle le blocage s'est produit.

    • Database Name : Le nom de la base de données où le blocage s'est produit.

    Cliquez n'importe où dans une ligne pour afficher le diagramme de blocage correspondant en bas de la page.

  • Blocking Diagram

    Affiche le SPID bloquant (en rouge), le SPID bloqué (en bleu), le type de verrou et la durée du blocage. Pour plus d'informations sur les types de verrous, consultez Lock Types.

    阻塞关系图

    Survolez un SPID pour afficher ses détails de blocage, qui incluent les éléments suivants :

    • SPID : L'ID du processus serveur.

    • BlockedBySpid : Le SPID de la session bloquante.

    • WaitType : Le type d'attente.

    • WaitTimeMs : La durée du blocage, en millisecondes.

    • CMD : Le type de commande SQL pour la session actuelle.

    • CPU : Le temps CPU, en millisecondes.

    • DBName : Le nom de la base de données.

    • ClientAppName : Le nom de l'application cliente.

    • HostName : Le nom d'hôte du client.

    • LoginId : Le nom d'utilisateur.

    • PhysicalIO : Les E/S consommées par la session actuelle. 1 PhysicalIO équivaut à 8 Ko.

    • QueryHash : Une valeur de hachage générée à partir de l'instruction SQL. Les instructions SQL du même type partagent le même QueryHash.

    • StartTime : L'heure de début du lot actuel. Un lot peut contenir plusieurs instructions SQL et partager des ressources telles que les valeurs des variables.

    • Status : L'état de la session actuelle.

    • SQL : Cliquez sur un SPID rouge ou bleu pour afficher les détails d'exécution SQL sous le Blocking Diagram.

  • SQL Details

    Dans le Blocking Diagram, cliquez sur un SPID rouge ou bleu pour afficher les détails d'exécution SQL de cette session. Cliquez sur Click to Copy pour copier rapidement l'instruction SQL à des fins d'analyse ou de dépannage.