Partager via


Classe d'événements Lock:Deadlock

La classe d'événements Lock:Deadlock intervient lorsqu'une tentative d'obtention d'un verrou est annulée, car cette tentative faisait partie d'un blocage et a été choisie comme victime.

La classe d'événements Lock:Deadlock permet de surveiller à quel moment surviennent les blocages, ainsi que les objets concernés. Ces informations peuvent vous être utiles pour déterminer si les blocages affectent de façon significative les performances de votre application. Vous pouvez ensuite examiner le code de l'application pour déterminer si vous pouvez y apporter des modifications afin de réduire le nombre de blocages.

Colonnes de données de la classe d'événements Lock:Deadlock

Nom de colonne de données

Type de données

Description

ID de colonne

Filtrable

ApplicationName

nvarchar

Nom de l'application cliente qui a créé la connexion à une instance de SQL Server. Cette colonne est remplie par les valeurs transmises par l'application et non pas par le nom affiché du programme.

10

Oui

BinaryData

image

Identificateur de la ressource de verrouillage.

2

Oui

ClientProcessID

int

ID affecté par l'ordinateur hôte au processus dans lequel s'exécute l'application cliente. Cette colonne de données est remplie si l'ID du processus de client est fourni par le client.

9

Oui

DatabaseID

int

ID de la base de données dans laquelle le verrou a été obtenu. Le SQL Server Profiler affiche le nom de la base de données si la colonne de données ServerName est capturée dans la trace et que le serveur est disponible. Détermine la valeur pour une base de données à l'aide de la fonction DB_ID.

3

Oui

DatabaseName

nvarchar

Nom de la base de données dans laquelle le verrou a été obtenu.

35

Oui

Duration

bigint

Temps qui s'écoule (en millièmes de seconde) entre l'émission de la demande de verrou et le blocage.

13

Oui

EndTime

datetime

Heure de fin du blocage.

15

Oui

EventClass

int

Type d'événement = 25.

27

Non

EventSequence

int

Ordre 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 SQL Trace se déclenche.

66

Oui

HostName

nvarchar

Nom de l'ordinateur sur lequel s'exécute le client. Cette 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

Numéro du blocage. Des numéros sont affectés à partir de 0 lors du démarrage du serveur, puis sont incrémentés à chaque blocage.

25

Oui

IntegerData2

int

Identifié à titre d'information uniquement. Non pris en charge. La compatibilité future n'est pas garantie.

55

Oui

IsSystem

int

Indique si l'événement s'est produit lors d'un processus système ou d'un processus utilisateur. 1 = système, 0 = utilisateur.

60

Oui

LoginName

nvarchar

Nom de la connexion de l'utilisateur (soit la connexion de sécurité SQL Server, soit les références de connexion Microsoft Windows sous la forme DOMAINE\Nomutilisateur).

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 SID est unique pour chaque connexion dans le serveur.

41

Oui

Mode

int

Mode obtenu après le blocage.

0 = NULL - compatible avec tous les autres modes de verrouillage (LCK_M_NL)

1 = verrou de stabilité de schéma (LCK_M_SCH_S)

2 = verrou de modification de schéma (LCK_M_SCH_M)

3 = verrou partagé (LCK_M_S)

4 = verrou de mise à jour (LCK_M_U)

5 = verrou exclusif (LCK_M_X)

6 = verrou Intent partagé (LCK_M_IS)

7 = verrou Intent de mise à jour (LCK_M_IU)

8 = verrou Intent exclusif (LCK_M_IX)

9 = verrou partagé avec mise à jour Intent (LCK_M_SIU)

10 = verrou partagé avec Intent exclusif (LCK_M_SIX)

11 = verrou mise à jour avec Intent exclusif (LCK_M_UIX)

12 = verrou de mise à jour en bloc (LCK_M_BU)

13 = verrou d'étendue de clés partagé/de ressources partagé (LCK_M_RS_S)

14 = verrou d'étendue de clés partagé/de ressources partagé (LCK_M_RS_U)

15 = verrou d'étendue de clés d'insertion de valeurs NULL (LCK_M_RI_NL)

16 = verrou d'étendue de clés d'insertion partagé (LCK_M_RI_S)

17 = verrou d'étendue de clés d'insertion de mise à jour (LCK_M_RI_U)

18 = verrou d'étendue de clés d'insertion exclusif (LCK_M_RI_X)

19 = verrou d'étendue de clés exclusif partagé (LCK_M_RX_S)

20 = verrou d'étendue de clés exclusif de mise à jour (LCK_M_RX_U)

21 = verrou d'étendue de clés exclusif/de ressources exclusif (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 de l'objet en rivalité, si disponible et applicable.

22

Oui

ObjectID2

bigint

ID de l'objet ou de l'entité associé, si disponible et applicable.

56

Oui

OwnerID

int

1=TRANSACTION

2=CURSOR

3=SESSION

4=SHARED_TRANSACTION_WORKSPACE

5=EXCLUSIVE_TRANSACTION_WORKSPACE

58

Oui

RequestID

int

ID de la demande contenant l'instruction.

49

Oui

ServerName

nvarchar

Nom de l'instance de SQL Server actuellement tracée.

26

Non

SessionLoginName

nvarchar

Nom de connexion de l'utilisateur à l'origine de la session. Par exemple, si vous vous connectez à SQL Server en utilisant le nom Connexion1 et que vous exécutez une instruction en tant que Connexion2, SessionLoginName affiche Connexion1 et LoginName, Connexion2. Cette colonne affiche 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 disponible.

14

Oui

TextData

ntext

Valeur de type texte dépendant du type de verrou obtenu.

1

Oui

TransactionID

bigint

ID affecté par le système à la transaction.

4

Oui

Type

int

1=NULL_RESOURCE

2=DATABASE

3=FILE

5=OBJECT

6=PAGE

7=KEY

8=EXTENT

9=RID

10=APPLICATION

11=METADATA

12=AUTONAMEDB

13=HOBT

14=ALLOCATION_UNIT

57

Oui