Analyser des blocages à l'aide de SQL Server Profiler
S'applique à : SQL Server Azure SQL Managed Instance
Utilisez le SQL Server Profiler pour identifier la cause d'un interblocage. Un interblocage se produit quand il y a une dépendance cyclique entre au moins deux threads ou processus pour un jeu de ressources dans SQL Server. Le SQL Server Profilervous permet de créer une trace qui enregistre, relit et affiche les événements de blocage dans le cadre d'une analyse.
Pour tracer les événements de blocage, ajoutez la classe d’événements Deadlock graph à une trace. Cette classe d’événements remplit la colonne de données TextData dans la trace avec des données XML relatives aux processus et objets impliqués dans le blocage. SQL Server Profiler peut extraire le document XML dans un fichier XML de blocages (.xdl) que vous pouvez afficher ultérieurement dans SQL Server Management Studio. Vous pouvez configurer le SQL Server Profiler de manière à extraire les événements Deadlock graph vers un fichier unique contenant tous les événements Deadlock graph , ou bien vers des fichiers distincts. Cette extraction peut être réalisée de l'une des manières suivantes :
Au moment de la configuration de la trace, à l’aide de l’onglet Paramètres d’extraction des événements . Cet onglet n’apparaît que si vous sélectionnez l’événement Deadlock graph sous l’onglet Sélection des événements .
À l’aide de l’option Extraire les événements SQL Server du menu Fichier .
Vous pouvez également extraire et enregistrer un événement donné en cliquant avec le bouton droit sur celui-ci et en choisissant Extraire les données d’événement.
Graphiques de blocage
SQL Server Profiler et SQL Server Management Studio utilisent un graphique WAITFOR de blocage pour décrire un blocage. Le graphique WAITFOR de blocage contient des nœuds de processus, des nœuds de ressources et des arêtes qui représentent les relations entre les processus et les ressources. Les composants des graphiques WAITFOR sont définis dans la table suivante :
Nœud de processus
Thread qui réalise une tâche ; par exemple, INSERT, UPDATE ou DELETE.
Nœud de ressource
Objet de base de données ; par exemple, une table, un index ou une ligne.
Edge
Relation entre un processus et une ressource. Une arête request se produit quand un processus attend une ressource. Une arête owner se produit quand une ressource attend un processus. Le mode de verrouillage est inclus dans la description des arêtes. Par exemple, Mode : X.
Nœud de processus de blocage
Dans un graphique WAITFOR, le nœud de processus contient des informations sur le processus. Le tableau suivant décrit les composants d'un processus.
Composant | Définition |
---|---|
ID de processus serveur | SPID, identificateur affecté par un serveur pour le processus détenant le verrou. |
ID de traitement du serveur | Identificateur de traitement du serveur (SBID). |
ID du contexte d'exécution | Identificateur du contexte d'exécution (ECID). ID de contexte d'exécution d'un thread particulier associé à un SPID spécifique ECID = {0,1,2,3, ...n}, où 0 représente toujours le thread principal ou parent et {1,2,3, ...n} les sous-threads. |
Priorité de blocage | Priorité de blocage du processus. Pour plus d’informations sur les valeurs possibles, consultez SET DEADLOCK_PRIORITY (Transact-SQL). |
Journal utilisé | Quantité d'espace journal utilisée par le processus. |
ID de propriétaire | ID de transaction des processus qui utilisent des transactions et qui attendent un verrou. |
Descripteur de transaction | Pointeur vers le descripteur de transaction qui décrit l'état de la transaction. |
Mémoire tampon d'entrée | Mémoire tampon d'entrée du processus actuel, qui définit le type d'événement et l'instruction en cours d'exécution. Les valeurs possibles incluent : Langage RPC Aucun |
. | Type d'instruction. Les valeurs possibles sont les suivantes : NOP SELECT UPDATE INSERT DELETE Unknown |
Nœud de ressource de blocage
Dans un blocage, chacun des deux processus attend une ressource détenue par l'autre processus. Dans un graphique de blocage, les ressources apparaissent sous la forme de nœuds de ressources.