Classe di evento Lock:Deadlock
Si applica a: SQL Server
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 che ha creato 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 | Sì |
BinaryData | Immagine | 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 l'ID del processo client viene fornito dal client. | 9 | Sì |
DatabaseID | int | ID del database in cui è stato acquisito il blocco. SQL Server Profiler visualizza il nome del database se la colonna di dati ServerName è acquisita nella traccia e il server è disponibile. 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ì |
Durata | 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 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 | Sì |
HostName | nvarchar | Nome del computer in cui viene eseguito il client. Questa colonna di dati viene popolata se il client fornisce il nome host. Per determinare il nome host, usare 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 | Identificato solo a scopo informativo. Non supportato. Non è garantita la compatibilità con le versioni future. | 55 | Sì |
IsSystem | int | Indica se l'evento è stato generato per un processo di sistema o un processo utente. 1 = sistema, 0 = utente. | 60 | Sì |
LoginName | nvarchar | Nome dell'account di accesso dell'utente (account di accesso di sicurezza di SQL Server o credenziali di accesso di Microsoft Windows sotto forma di DOMINIO\nomeutente). | 11 | Sì |
LoginSid | Immagine | 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 | Sì |
Modalità | 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 | Sì |
NTDomainName | nvarchar | Dominio Windows di appartenenza dell'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. Ad esempio, se ci si connette a SQL Server usando Login1 ed eseguire un'istruzione come Login2, SessionLoginName mostra Login1 e LoginName mostra Login2. In questa colonna vengono visualizzati sia gli account di accesso di SQL Server che di Windows. | 64 | Sì |
SPID | int | ID della sessione in cui si è verificato 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ì |
Vedi anche
sp_trace_setevent (Transact-SQL)
sys.dm_tran_locks (Transact-SQL)