Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
La classe d’événements Lock :Escalation indique qu’un verrou plus fin a été converti en verrou grossier ; par exemple, un verrou de ligne converti en verrou d’objet. La classe d’événements d’escalade est l’ID d’événement 60.
Colonnes de données de la classe d’événements Lock :Escalation
| Nom de la colonne de données | Type de données | Descriptif | ID de la colonne | Filtrable |
|---|---|---|---|---|
| ApplicationName | nvarchar |
Nom de l’application cliente qui a créé la connexion à une instance de SQL Server. Cette colonne est remplie avec les valeurs passées par l'application plutôt que par le nom affiché du programme. | 10 | Oui |
| ClientProcessID | int |
ID affecté par l'ordinateur hôte au processus dans lequel s'exécute l'application cliente. La colonne de données est remplie si le client fournit l'ID du processus client. | 9 | Oui |
| DatabaseID | int |
ID de la base de données dans laquelle le verrou a été acquis. Le Générateur de profils SQL affiche le nom de la base de données si la colonne de données ServerName du serveur est capturée dans la trace et que le serveur est disponible. Déterminez la valeur pour une base de données à l'aide de la fonction DB_ID. | 3 | Oui |
| BaseDeDonnées | nvarchar |
Nom de la base de données dans laquelle l’escalade s’est produite. | 35 | Oui |
| EventClass | int |
Type d’événement = 60. | 27 | Non |
| EventSubClass | int |
Cause de l’escalade de verrous : 0 - LOCK_THRESHOLD indique que l’instruction a dépassé le seuil de verrouillage. 1 - MEMORY_THRESHOLD indique que l’instruction a dépassé le seuil de mémoire. |
Vingt-et-un | Oui |
| EventSequence | int |
Séquence d'un événement donné au sein de la demande. | 51 | Non |
| groupID | int |
ID du groupe de charges de travail où l'événement Trace SQL se déclenche. | 66 | Oui |
| Nom d’hôte | nvarchar |
Nom de l'ordinateur sur lequel le client est exécuté. La colonne de données est remplie si le client fournit le nom de l'hôte. Pour déterminer le nom de l’hôte, utilisez la fonction HOST_NAME . | 8 | Oui |
| IntegerData | int |
Compte des verrous HoBT. Nombre de verrous pour le HoBT au moment de l’escalade de verrous. | 25 | Oui |
| IntegerData2 | int |
Nombre de verrous accru. Nombre total de verrous convertis. Ces structures de verrou sont libérées, car elles sont déjà couvertes par le verrou escaladé. | 55 | Oui |
| IsSystem | int |
Indique si l'événement s'est produit sur un processus système ou sur un processus utilisateur. 1 = système, 0 = utilisateur. | soixante | Oui |
| LineNumber | int |
Numéro de ligne de l’instruction Transact-SQL. | 5 | Oui |
| LoginName | nvarchar |
Nom de la connexion de l’utilisateur (connexion de sécurité SQL Server ou informations d’identification de connexion Microsoft Windows sous la forme domain\username). | 11 | Oui |
| LoginSid | image |
Numéro d'identification de sécurité (SID) de l'utilisateur connecté. Vous pouvez trouver ces informations dans l’affichage catalogue sys.server_principals . Chaque connexion possède un SID unique au niveau du serveur. | 41 | Oui |
| Mode | int |
Mode de verrouillage obtenu après l’escalade : 0=NULL - Compatible avec tous les autres modes de verrouillage (LCK_M_NL) 1=Verrou de stabilité du schéma (LCK_M_SCH_S) 2=Verrou de modification du schéma (LCK_M_SCH_M) 3=Verrouillage partagé (LCK_M_S) 4=Mettre à jour le verrou (LCK_M_U) 5=Verrouillage exclusif (LCK_M_X) 6=Verrou partagé d’intention (LCK_M_IS) 7=Verrou de mise à jour de l’intention (LCK_M_IU) 8=Verrouillage exclusif d’intention (LCK_M_IX) 9=Partagé avec l’intention de mettre à jour (LCK_M_SIU) 10=Partagé avec intention exclusive (LCK_M_SIX) 11=Mettre à jour avec l’intention exclusive (LCK_M_UIX) 12=Verrou de mise à jour en masse (LCK_M_BU) 13=Clés partagées/partagées (LCK_M_RS_S) 14=Plage de clés partagée/mise à jour (LCK_M_RS_U) 15=Insérer une plage clé NULL (LCK_M_RI_NL) 16=Insertion de plage de clés partagée (LCK_M_RI_S) 17=Mise à jour d’insertion de plage de clés (LCK_M_RI_U) 18=Insertion exclusive de plage de clés (LCK_M_RI_X) 19=Plage de clés Exclusif Partagé (LCK_M_RX_S) 20=Mise à jour exclusive de plage de clés (LCK_M_RX_U) 21=Verrouillage exclusif de plage de clés (LCK_M_RX_X) |
32 | Oui |
| NTDomainName | nvarchar |
Domaine Windows auquel appartient l'utilisateur. | 7 | Oui |
| NTUserName | nvarchar |
Nom d'utilisateur Windows. | 6 | Oui |
| ObjectID | int |
ID attribué par le système de la table pour laquelle l’escalade de verrous a été déclenchée. | 22 | Oui |
| ObjectID2 | bigint |
ID de l’objet ou de l’entité associé. (ID de HoBT pour lequel l'escalade de verrous a été déclenchée.) | 56 | Oui |
| offset | int |
Décalage de départ de l’instruction Transact-SQL. | 61 | Oui |
| OwnerID | int |
1=TRANSACTION 2=CURSEUR 3=SESSION (if no translation is required or it serves as an identifier) 4=ESPACE_DE_TRAVAIL_TRANSACTION_PARTAGÉE 5=ESPACE_DE_TRAVAIL_DE_TRANSACTION_EXCLUSIF 6=WAITFOR_QUERY |
58 | Oui |
| RequestID | int |
ID de la demande contenant l'instruction. | 49 | Oui |
| Nom_serveur | nvarchar |
Nom de l’instance de SQL Server en cours de suivi. | 26 | Non |
| SessionLoginName | nvarchar |
Nom de connexion de l'utilisateur à l'origine de la session. Par exemple, si vous vous connectez à SQL Server à l’aide de Login1 et exécutez une instruction en tant que Login2, SessionLoginName affiche Login1 et LoginName affiche Login2. Cette colonne affiche à la fois les connexions SQL Server et Windows. | 64 | Oui |
| SPID | int |
ID de la session au cours de laquelle l'événement s'est produit. | 12 | Oui |
| StartTime | datetime |
Heure à laquelle a débuté l'événement, si elle est connue. | 14 | Oui |
| TextData | ntext |
Texte de l'instruction Transact-SQL ayant provoqué une escalade des verrous. | 1 | Oui |
| TransactionID | bigint |
ID affecté par le système à la transaction. | 4 | Oui |
| Type | int |
Granularité de l’escalade des verrous : 1=RESSOURCE_NULLE 2=BASE DE DONNÉES 3=FICHIER 5=OBJECT (niveau de table) 6=PAGE 7=CLÉ 8=ÉTENDUE 9=RID 10=APPLICATION 11=MÉTADONNÉES 12=HOBT 13=UNITÉ_D'ALLOCATION |
57 | Oui |
Exemples
L’exemple suivant utilise la sp_trace_create procédure pour créer une trace, utilise sp_trace_setevent pour ajouter des colonnes d’escalade de verrous à la trace, puis utilise sp_trace_setstatus pour démarrer la trace. Dans des instructions telles que EXEC sp_trace_setevent @TraceID, 60, 22, 1, le nombre 60 indique la classe d’événements d’escalade, 22 indique la colonne ObjectID et 1 définit l’événement de trace sur ON.
DECLARE @RC int, @TraceID int;
EXEC @rc = sp_trace_create @TraceID output, 0, N'C:\TraceResults';
-- Set the events and data columns you need to capture.
EXEC sp_trace_setevent @TraceID, 60, 1, 1; -- 1 = TextData
EXEC sp_trace_setevent @TraceID, 60, 12, 1; -- 12 = SPID
EXEC sp_trace_setevent @TraceID, 60, 21, 1; -- 21 = EventSubClass
EXEC sp_trace_setevent @TraceID, 60, 22, 1; -- 22 = ObjectID
EXEC sp_trace_setevent @TraceID, 60, 25, 1; -- 25 = IntegerData
EXEC sp_trace_setevent @TraceID, 60, 55, 1; -- 25 = IntegerData2
EXEC sp_trace_setevent @TraceID, 60, 57, 1; -- 57 = Type
-- Set any filter by using sp_trace_setfilter.
-- Start the trace.
EXEC sp_trace_setstatus @TraceID, 1;
GO
Maintenant que la trace est en cours d’exécution, exécutez les instructions que vous souhaitez tracer. Une fois terminés, exécutez le code suivant pour arrêter, puis fermez la trace. Cet exemple utilise la fonction fn_trace_getinfo pour obtenir la traceid à utiliser dans les instructions sp_trace_setstatus.
-- After the trace is complete.
DECLARE @TraceID int;
-- Find the traceid of the current trace.
SELECT @TraceID = traceid
FROM ::fn_trace_getinfo(default)
WHERE value = N'C:\TraceResults.trc';
-- First stop the trace.
EXEC sp_trace_setstatus @TraceID, 0;
-- Close and then delete its definition from SQL Server.
EXEC sp_trace_setstatus @TraceID, 2;
GO
Voir aussi
sp_trace_setevent (Transact-SQL)
sys.dm_tran_locks (Transact-SQL)