Classe Lock:Acquired Event
La classe di evento Lock:Acquired indica l'acquisizione di un blocco su una risorsa, ad esempio una pagina di dati.
Le classi di evento Lock:Acquired e Lock:Released consentono di monitorare i blocchi acquisiti sugli oggetti, il tipo di blocco applicato e la durata del blocco. I blocchi mantenuti per lunghi periodi di tempo possono causare problemi di contesa. Per questo è necessario esaminarli. Ad esempio, è possibile che un'applicazione acquisisca i blocchi sulle righe di una tabella e quindi rimanga in attesa dell'input utente. L'attesa dell'input utente può essere prolungata e pertanto bloccare altri utenti. In tal caso, sarà necessario riprogettare l'applicazione in modo che le richieste di blocco vengano attivate soltanto quando necessario e che al momento dell'acquisizione dei blocchi non venga richiesto l'input utente.
Colonne di dati della classe di evento Lock:Acquired
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 Microsoft SQL Server. Questa colonna viene popolata con i valori passati dall'applicazione anziché con il nome visualizzato del programma. |
10 |
Sì |
BigintData1 |
bigint |
ID partizione se la risorsa di blocco è partizionata. |
52 |
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 il client specifica 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ì |
Duration |
bigint |
Tempo, espresso in microsecondi, tra la generazione della richiesta di blocco e l'acquisizione del blocco. |
13 |
Sì |
EndTime |
datetime |
Ora di fine dell'evento. |
15 |
Sì |
EventClass |
int |
Tipo di evento = 24. |
27 |
No |
EventSequence |
int |
Sequenza di un determinato evento nella richiesta. |
51 |
No |
HostName |
nvarchar |
Nome del computer in cui è in esecuzione il client. Questa colonna di dati viene popolata se il client specifica il nome host. Per determinare il nome host, utilizzare la funzione HOST_NAME. |
8 |
Sì |
IntegerData2 |
int |
Riservato per utilizzi futuri. |
55 |
Sì |
IsSystem |
int |
Indica se l'evento si è verificato 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 Windows nel formato DOMINIO\nomeutente). |
11 |
Sì |
LoginSid |
image |
ID di protezione (SID) dell'utente connesso. Tali informazioni sono disponibili nella tabella sys.sysusers del database master. Il SID è univoco per ogni account di accesso nel server. |
41 |
Sì |
Mode |
int |
Modalità risultante dopo l'acquisizione del blocco. 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 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) 10=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 sul quale è stato acquisito il blocco, 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 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 si è verificato l'evento. |
12 |
Sì |
StartTime |
datetime |
Ora di inizio dell'evento, se disponibile. |
14 |
Sì |
TextData |
ntext |
Valore testuale dipendente dal tipo di blocco acquisito. Valore identico a quella della colonna resource_description in sys.dm_tran_locks. |
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
Classe di evento Lock:Released
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