Classe di evento Lock:Timeout
Tramite la classe di evento Lock:Timeout viene segnalato 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.
Utilizzare la classe di evento Lock:Timeout per monitorare le 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 rappresentano necessariamente un problema. Per ignorare i timeout di durata pari a 0, è possibile utilizzare l'evento Lock:Timeout (timeout > 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 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 |
Sì |
BinaryData |
image |
Identificatore della risorsa di 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 tramite il client viene indicato l'ID del processo client. |
9 |
Sì |
DatabaseID |
int |
ID del database in cui si è verificato il timeout di 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 |
Sì |
DatabaseName |
nvarchar |
Nome del database in cui si è verificato il timeout. |
35 |
Sì |
Duration |
bigint |
Intervallo in microsecondi tra la richiesta del blocco e il timeout. |
13 |
Sì |
EndTime |
datetime |
Ora di fine dell'evento. |
15 |
Sì |
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 |
Sì |
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ì |
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 nel formato DOMINIO\nomeutente). |
11 |
Sì |
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 |
Sì |
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 |
Sì |
NTDomainName |
nvarchar |
Dominio Windows di appartenenza dell'utente. |
7 |
Sì |
NTUserName |
nvarchar |
Nome utente di Windows. |
6 |
Sì |
ObjectID |
int |
ID dell'oggetto per il quale si è verificato il timeout, 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 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 |
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 in fase di acquisizione nel momento in cui si è verificato il timeout. |
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
Riferimento
sp_trace_setevent (Transact-SQL)