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 fa 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 anziché con il nome visualizzato del programma. |
10 |
Sì |
BinaryData |
image |
Identificatore della risorsa blocco. |
2 |
Sì |
ClientProcessID |
int |
ID assegnato dal computer host al processo in cui è in esecuzione l'applicazione client. Questa colonna di dati viene popolata se il client fornisce l'ID del processo client. |
9 |
Sì |
DatabaseID |
int |
ID del database in cui è stato acquisito il blocco. In SQL Server Profiler viene visualizzato il nome del database se l'acquisizione per la traccia include la colonna di dati ServerName e il server è disponibile. È possibile determinare il valore per un database utilizzando la funzione DB_ID. |
3 |
Sì |
DatabaseName |
nvarchar |
Nome del database in cui è stato acquisito il blocco. |
35 |
Sì |
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 |
Sì |
EndTime |
datetime |
Ora di fine del deadlock. |
15 |
Sì |
EventClass |
int |
Tipo di evento = 25. |
27 |
No |
EventSequence |
int |
Sequenza di un evento specifico nella richiesta. |
51 |
No |
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 |
Sì |
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 |
Sì |
IntegerData2 |
int |
Riservato per utilizzi futuri. |
55 |
Sì |
IsSystem |
int |
Indica se l'evento è stato generato in un processo di sistema o in un processo utente. 1 = sistema, 0 = utente. |
60 |
Sì |
LoginName |
nvarchar |
Nome dell'account di accesso dell'utente (account di protezione di SQL Server o credenziali di accesso di Microsoft Windows nel formato DOMINIO\nomeutente). |
11 |
Sì |
LoginSid |
image |
ID di protezione (SID) dell'utente connesso. Tali informazioni sono disponibili nella tabella syslogins del database master. Il SID è univoco per ogni account di accesso nel server. |
41 |
Sì |
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) 2 = Blocco di modifica dello schema (LCK_M_SCH_M) 3 = Blocco di condivisione (LCK_M_S) 4 = Blocco di aggiornamento (LCK_M_U) 5 = Blocco esclusivo (LCK_M_X) 6 = Blocco di condivisione 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) 11 = Aggiornamento-Preventivo-Esclusivo (LCK_M_SIX) 12 = Blocco aggiornamenti di massa (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 |
Sì |
NTDomainName |
nvarchar |
Dominio di Windows a cui appartiene l'utente. |
7 |
Sì |
NTUserName |
nvarchar |
Nome utente di Windows. |
6 |
Sì |
ObjectID |
int |
ID dell'oggetto in contesa, se disponibile e applicabile. |
22 |
Sì |
ObjectID2 |
bigint |
ID dell'entità o dell'oggetto correlato, se disponibile e applicabile. |
56 |
Sì |
OwnerID |
int |
1 = TRANSACTION 2 = CURSOR 3 = SESSION 4 = SHARED_TRANSACTION_WORKSPACE 5 = EXCLUSIVE_TRANSACTION_WORKSPACE |
58 |
Sì |
RequestID |
int |
ID della richiesta contenente l'istruzione. |
49 |
Sì |
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 attiva la connessione a SQL Server con l'account di accesso Login1 e si esegue un'istruzione con l'account di accesso Login2, SessionLoginName indica Login1 e LoginName indica Login2. In questa colonna vengono visualizzati sia gli account di accesso di SQL Server che quelli di Windows. |
64 |
Sì |
SPID |
int |
ID della sessione in cui è stato generato l'evento. |
12 |
Sì |
StartTime |
datetime |
Ora di inizio dell'evento, se disponibile. |
14 |
Sì |
TextData |
ntext |
Valore di testo che dipende dal tipo di blocco acquisito. |
1 |
Sì |
TransactionID |
bigint |
ID della transazione assegnato dal sistema. |
4 |
Sì |
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 |
Sì |
Vedere anche
Concetti
Utilizzo dei blocchi in Motore di database
Compatibilità tra blocchi (Motore di database)
Altre risorse
Monitoraggio di eventi
sp_trace_setevent (Transact-SQL)
sys.dm_tran_locks