Condividi tramite


Classe di evento Lock:Deadlock

La classe di evento Lock:Deadlock viene generata quando viene annullato un tentativo di acquisire un blocco in quanto il tentativo faceva parte di un deadlock ed è stato scelto come vittima del deadlock.

Utilizzare la classe di evento Lock:Deadlock per monitorare i momenti in cui si verificano i deadlock e gli oggetti implicati. È possibile utilizzare queste informazioni per determinare se i deadlock influiscono significativamente sulle prestazioni dell'applicazione. È quindi possibile esaminare il codice dell'applicazione per determinare se sia possibile apportare modifiche per ridurre i deadlock.

Colonne di dati della classe di evento Lock:Deadlock

Nome colonna di dati

Tipo di dati

Descrizione

ID colonna

Filtrabile

ApplicationName

nvarchar

Nome dell'applicazione client in cui è stata creata la connessione a un'istanza di SQL Server. Questa colonna viene popolata con i valori passati dall'applicazione e non con il nome visualizzato del programma.

10

BinaryData

image

Identificatore della risorsa di blocco.

2

ClientProcessID

int

ID assegnato dal computer host al processo in cui è in esecuzione l'applicazione client. Questa colonna di dati viene popolata se l'ID del processo client viene fornito dal client.

9

DatabaseID

int

ID del database in cui è stato acquisito il blocco. Se la colonna di dati ServerName viene catturata nella traccia e il server è disponibile SQL Server Profiler visualizza il nome del database. Determinare il valore per un database utilizzando la funzione DB_ID.

3

DatabaseName

nvarchar

Nome del database in cui è stato acquisito il blocco.

35

Duration

bigint

Quantità di tempo, in microsecondi, trascorso dal momento in cui è stata eseguita la richiesta di blocco a quello in cui si è verificato il deadlock.

13

EndTime

datetime

Ora di fine del deadlock.

15

EventClass

int

Tipo di evento = 25.

27

No

EventSequence

int

Sequenza di un determinato evento all'interno della richiesta.

51

No

GroupID

int

ID del gruppo del carico di lavoro in cui viene generato l'evento di Traccia SQL.

66

HostName

nvarchar

Nome del computer in cui è in esecuzione il client. Questa colonna di dati viene popolata se il client fornisce il nome host. Per determinare il nome host, utilizzare la funzione HOST_NAME.

8

IntegerData

int

Numero del deadlock. Dall'avvio del server viene assegnato un numero a partire da 0, incrementato di un'unità per ogni deadlock.

25

IntegerData2

int

Identificato solo a scopo informativo. Non supportato. Non è garantita la compatibilità con le versioni future.

55

IsSystem

int

Indica se l'evento è stato generato per un processo di sistema o un processo utente. 1 = sistema, 0 = utente.

60

LoginName

nvarchar

Nome dell'account di accesso dell'utente (account di accesso di sicurezza di SQL Server o credenziali di accesso di Microsoft Windows nel formato DOMINIO\nomeutente).

11

LoginSid

image

ID di sicurezza (SID) dell'utente connesso. Queste informazioni sono disponibili nella vista del catalogo sys.server_principals. Il SID è univoco per ogni account di accesso nel server.

41

Mode

int

Modalità risultante dopo il deadlock.

0=NULL - Compatibile con tutte le altre modalità di blocco (LCK_M_NL)

1 = Blocco di stabilità dello schema (LCK_M_SCH_S)

1=Blocco di modifica dello schema (LCK_M_SCH_M)

3=Blocco condiviso (LCK_M_S)

4=Blocco di aggiornamento (LCK_M_U)

5=Blocco esclusivo (LCK_M_X)

6=Blocco condiviso preventivo (LCK_M_IS)

7=Blocco di aggiornamento preventivo (LCK_M_IU)

8=Blocco esclusivo preventivo (LCK_M_IX)

9=Condiviso-Preventivo-Aggiornamento (LCK_M_SIU)

10=Condiviso-Preventivo-Esclusivo (LCK_M_SIX)

10=Aggiornamento-Preventivo-Esclusivo (LCK_M_SIX)

12=Blocco aggiornamenti bulk (LCK_M_BU)

13=Intervalli di chiavi-Condiviso/Condiviso (LCK_M_RS_S)

14=Intervalli di chiavi-Condiviso/Aggiornamento (LCK_M_RS_U)

15=Intervalli di chiavi-Inserimento-NULL (LCK_M_RI_NL)

16=Intervalli di chiavi-Inserimento-Condiviso (LCK_M_RI_S)

17=Intervalli di chiavi-Inserimento-Aggiornamento (LCK_M_RI_U)

18=Intervalli di chiavi-Inserimento-Esclusivo (LCK_M_RI_X)

19=Intervalli di chiavi-Esclusivo-Condiviso (LCK_M_RX_S)

20=Intervalli di chiavi-Esclusivo-Aggiornamento (LCK_M_RX_U)

21=Intervalli di chiavi-Esclusivo-Esclusivo (LCK_M_RX_X)

32

NTDomainName

nvarchar

Dominio Windows di appartenenza dell'utente.

7

NTUserName

nvarchar

Nome utente di Windows.

6

ObjectID

int

ID dell'oggetto in contesa, se disponibile e applicabile.

22

ObjectID2

bigint

ID dell'entità o dell'oggetto correlato, se disponibile e applicabile.

56

OwnerID

int

1=TRANSACTION

2=CURSOR

3=SESSION

4=SHARED_TRANSACTION_WORKSPACE

5=EXCLUSIVE_TRANSACTION_WORKSPACE

58

RequestID

int

ID della richiesta contenente l'istruzione.

49

ServerName

nvarchar

Nome dell'istanza di SQL Server tracciata.

26

No

SessionLoginName

nvarchar

Nome dell'account di accesso dell'utente che ha avviato la sessione. Se, ad esempio, si esegue la connessione a SQL Server con l'account di accesso Login1 e si esegue un'istruzione con l'account di accesso Login2, in SessionLoginName viene visualizzato Login1 e in LoginName viene visualizzato Login2. In questa colonna vengono visualizzati sia gli account di accesso di SQL Server che quelli di Windows.

64

SPID

int

ID della sessione in cui si è verificato l'evento.

12

StartTime

datetime

Ora di inizio dell'evento, se disponibile.

14

TextData

ntext

Valore di testo che dipende dal tipo di blocco acquisito.

1

TransactionID

bigint

ID della transazione assegnato dal sistema.

4

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

Vedere anche

Riferimento

sp_trace_setevent (Transact-SQL)

sys.dm_tran_locks (Transact-SQL)