Classe di evento Lock:Timeout

Si applica a:SQL Server

La classe di evento Lock:Timeout segnala il timeout di una richiesta di blocco su una risorsa, ad esempio una pagina, dovuto alla presenza di un blocco su tale risorsa mantenuto attivo da un'altra transazione. Il valore di timeout è determinato dalla funzione di sistema @@LOCK_TIMEOUT e può essere impostato tramite l'istruzione SET LOCK_TIMEOUT.

La classe di evento Lock:Timeout consente di eseguire il monitoraggio delle condizioni di timeout. In questo modo è possibile determinare se i timeout influiscono in modo significativo sulle prestazioni dell'applicazione, nonché individuare gli oggetti coinvolti. È quindi possibile esaminare il codice dell'applicazione che modifica tali oggetti per verificare se possono essere apportate modifiche che riducano i timeout.

Gli eventi Lock:Timeout di durata pari a 0 corrispondono in genere al risultato di probe per i blocchi interni e non indicano necessariamente la presenza di un problema. L'evento Lock:Timeout (timeout > 0) può essere usato per ignorare i timeout con una durata pari a 0.

Colonne di dati della classe di evento Lock:Timeout

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
BinaryData Immagine Identificatore della risorsa 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 tramite il client viene indicato l'ID del processo client. 9
DatabaseID int ID del database in cui si è verificato il timeout di blocco. SQL Server Profiler visualizza il nome del database se la colonna di dati ServerName viene acquisita nella traccia e il server è disponibile. Determinare il valore per un database utilizzando la funzione DB_ID. 3
DatabaseName nvarchar Nome del database in cui si è verificato il timeout. 35
Durata bigint Intervallo in microsecondi tra la richiesta del blocco e il timeout. 13
EndTime datetime Ora di fine dell'evento. 15
EventClass int Tipo di evento = 27. 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 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
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 sotto forma di DOMINIO\nomeutente). 11
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
Mode int Modalità risultante dopo il timeout.

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 per il quale si è verificato il timeout, 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. Ad esempio, se ci si connette a SQL Server usando Login1 ed eseguire un'istruzione come Login2, SessionLoginName mostra Login1; mentre LoginName mostra Login2. In questa colonna vengono visualizzati sia gli account di accesso di SQL Server che 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 in fase di acquisizione nel momento in cui si è verificato il timeout. 1
TransactionID bigint ID della transazione assegnato dal sistema. 4
Tipo 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

Vedi anche

sp_trace_setevent (Transact-SQL)
Classe di evento Lock:Timeout (timeout > 0)
sys.dm_tran_locks (Transact-SQL)