Condividi tramite


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

BigintData1

bigint

ID partizione se la risorsa di blocco è partizionata.

52

BinaryData

image

Identificatore della risorsa di 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 il client specifica l'ID del processo client.

9

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

Duration

bigint

Tempo, espresso in microsecondi, tra la generazione della richiesta di blocco e l'acquisizione del blocco.

13

EndTime

datetime

Ora di fine dell'evento.

15

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

IntegerData2

int

Riservato per utilizzi futuri.

55

IsSystem

int

Indica se l'evento si è verificato in un processo di sistema o in un processo utente. 1 = sistema, 0 = utente.

60

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

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

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

NTDomainName

nvarchar

Dominio di Windows a cui appartiene l'utente.

7

NTUserName

nvarchar

Nome utente di Windows.

6

ObjectID

int

ID dell'oggetto sul quale è stato acquisito il blocco, 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 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

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 testuale dipendente dal tipo di blocco acquisito. Valore identico a quella della colonna resource_description in sys.dm_tran_locks.

1

TransactionID

bigint

ID della transazione assegnato dal sistema.

4

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

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

Guida in linea e informazioni

Assistenza su SQL Server 2005