Classe di evento Lock:EscalationLock:Escalation Event Class

La classe di evento Lock:Escalation indica che un blocco con granularità fine è stato convertito in un blocco con granularità grossolana, ad esempio un blocco di riga è stato convertito in blocco di oggetto.The Lock:Escalation event class indicates that a finer-grained lock has been converted to a coarser-grained lock; for example, a row lock that is converted to an object lock. La classe di evento dell'escalation è l'ID evento 60.The escalation event class is Event ID 60.

Colonne di dati della classe di evento Lock:EscalationLock:Escalation Event Class Data Columns

Nome colonna di datiData column name Tipo di datiData type DescrizioneDescription ID colonnaColumn ID FiltrabileFilterable
ApplicationNameApplicationName nvarcharnvarchar Nome dell'applicazione client in cui è stata creata la connessione a un'istanza di SQL ServerSQL Server.Name of the client application that created the connection to an instance of SQL ServerSQL Server. Questa colonna viene popolata con i valori passati dall'applicazione e non con il nome visualizzato del programma.This column is populated with the values passed by the application rather than the displayed name of the program. 1010 Yes
ClientProcessIDClientProcessID intint ID assegnato dal computer host al processo in cui è in esecuzione l'applicazione client.ID assigned by the host computer to the process where the client application is running. Questa colonna di dati viene popolata se tramite il client viene indicato l'ID del processo client.This data column is populated if the client provides the client process ID. 99 Yes
DatabaseIDDatabaseID intint ID del database in cui è stato acquisito il blocco.ID of the database in which the lock was acquired. SQL Server ProfilerSQL Server Profiler visualizza il nome del database se la colonna di dati ServerName è acquisita nella traccia e il server è disponibile. displays the name of the database if the ServerName data column is captured in the trace and the server is available. Determinare il valore per un database utilizzando la funzione DB_ID.Determine the value for a database by using the DB_ID function. 33 Yes
DatabaseNameDatabaseName nvarcharnvarchar Nome del database in cui si è verificata l'escalation.Name of the database in which the escalation occurred. 3535 Yes
EventClassEventClass intint Tipo di evento = 60.Type of event = 60. 2727 NoNo
EventSubClassEventSubClass intint Causa dell'escalation dei blocchi:Cause of the lock escalation:

0 - LOCK_THRESHOLD indica che l'istruzione supera la soglia del blocco.0 - LOCK_THRESHOLD indicates the statement exceeded the lock threshold.

1 - MEMORY_THRESHOLD indica che l'istruzione supera la soglia di memoria.1 - MEMORY_THRESHOLD indicates the statement exceeded the memory threshold.
2121 Yes
EventSequenceEventSequence intint Sequenza di un determinato evento all'interno della richiesta.Sequence of a given event within the request. 5151 NoNo
GroupIDGroupID intint ID del gruppo del carico di lavoro in cui viene generato l'evento di Traccia SQL.ID of the workload group where the SQL Trace event fires. 6666 Yes
HostNameHostName nvarcharnvarchar Nome del computer in cui viene eseguito il client.Name of the computer on which the client is running. Questa colonna di dati viene popolata se il client fornisce il nome host.This data column is populated if the client provides the host name. Per determinare il nome host, usare la funzione HOST_NAME.To determine the host name, use the HOST_NAME function. 88 Yes
IntegerDataIntegerData intint Conteggio dei blocchi HoBT.HoBT lock count. Numero di blocchi HoBT al momento dell'escalation dei blocchi.The number of locks for the HoBT at the time of lock escalation. 2525 Yes
IntegerData2IntegerData2 intint Conteggio dei blocchi alzati di livello.Escalated lock count. Numero totale di blocchi convertiti.The total number of locks that were converted. Queste strutture di blocco vengono deallocate poiché già coperte dal blocco alzato di livello.These lock structures are deallocated because they are already covered by the escalated lock. 5555 Yes
IsSystemIsSystem intint Indica se l'evento è stato generato per un processo di sistema o un processo utente.Indicates whether the event occurred on a system process or a user process. 1 = sistema, 0 = utente.1 = system, 0 = user. 6060 Yes
LineNumberLineNumber intint Numero di riga dell'istruzione Transact-SQLTransact-SQL .Line number of Transact-SQLTransact-SQL statement. 55 Yes
LoginNameLoginName nvarcharnvarchar Nome dell'account di accesso dell'utente (account di accesso di sicurezza di SQL ServerSQL Server o credenziali di accesso di MicrosoftMicrosoft Windows nel formato DOMINIO\nomeutente).Name of the login of the user (either SQL ServerSQL Server security login or the MicrosoftMicrosoft Windows login credentials in the form of DOMAIN\username). 1111 Yes
LoginSidLoginSid imageimage ID di sicurezza (SID) dell'utente connesso.Security identification number (SID) of the logged-in user. Queste informazioni sono disponibili nella vista del catalogo sys.server_principals .You can find this information in the sys.server_principals catalog view. Il SID è univoco per ogni account di accesso nel server.Each SID is unique for each login in the server. 4141 Yes
ModeMode intint Modalità di blocco risultante dopo l'escalation:Resulting lock mode after the escalation:

0=NULL - Compatibile con tutte le altre modalità di blocco (LCK_M_NL)0=NULL - Compatible with all other lock modes (LCK_M_NL)

1=Blocco di stabilità dello schema (LCK_M_SCH_S)1=Schema Stability lock (LCK_M_SCH_S)

1=Blocco di modifica dello schema (LCK_M_SCH_M)2=Schema Modification Lock (LCK_M_SCH_M)

3=Blocco condiviso (LCK_M_S)3=Shared Lock (LCK_M_S)

4=Blocco di aggiornamento (LCK_M_U)4=Update Lock (LCK_M_U)

5=Blocco esclusivo (LCK_M_X)5=Exclusive Lock (LCK_M_X)

6=Blocco condiviso preventivo (LCK_M_IS)6=Intent Shared Lock (LCK_M_IS)

7=Blocco di aggiornamento preventivo (LCK_M_IU)7=Intent Update Lock (LCK_M_IU)

8=Blocco esclusivo preventivo (LCK_M_IX)8=Intent Exclusive Lock (LCK_M_IX)

9=Condiviso-Preventivo-Aggiornamento (LCK_M_SIU)9=Shared with intent to Update (LCK_M_SIU)

10=Condiviso-Preventivo-Esclusivo (LCK_M_SIX)10=Shared with Intent Exclusive (LCK_M_SIX)

10=Aggiornamento-Preventivo-Esclusivo (LCK_M_SIX)11=Update with Intent Exclusive (LCK_M_UIX)

12=Blocco aggiornamenti bulk (LCK_M_BU)12=Bulk Update Lock (LCK_M_BU)

13=Intervalli di chiavi-Condiviso/Condiviso (LCK_M_RS_S)13=Key range Shared/Shared (LCK_M_RS_S)

14=Intervalli di chiavi-Condiviso/Aggiornamento (LCK_M_RS_U)14=Key range Shared/Update (LCK_M_RS_U)

15=Intervalli di chiavi-Inserimento-NULL (LCK_M_RI_NL)15=Key Range Insert NULL (LCK_M_RI_NL)

16=Intervalli di chiavi-Inserimento-Condiviso (LCK_M_RI_S)16=Key Range Insert Shared (LCK_M_RI_S)

17=Intervalli di chiavi-Inserimento-Aggiornamento (LCK_M_RI_U)17=Key Range Insert Update (LCK_M_RI_U)

18=Intervalli di chiavi-Inserimento-Esclusivo (LCK_M_RI_X)18=Key Range Insert Exclusive (LCK_M_RI_X)

19=Intervalli di chiavi-Esclusivo-Condiviso (LCK_M_RX_S)19=Key Range Exclusive Shared (LCK_M_RX_S)

20=Intervalli di chiavi-Esclusivo-Aggiornamento (LCK_M_RX_U)20=Key Range Exclusive Update (LCK_M_RX_U)

21=Intervalli di chiavi-Esclusivo-Esclusivo (LCK_M_RX_X)21=Key Range Exclusive Exclusive (LCK_M_RX_X)
3232 Yes
NTDomainNameNTDomainName nvarcharnvarchar Dominio Windows di appartenenza dell'utente.Windows domain to which the user belongs. 77 Yes
NTUserNameNTUserName nvarcharnvarchar Nome utente di Windows.Windows user name. 66 Yes
ObjectIDObjectID intint ID assegnato dal sistema della tabella per la quale è stata generata l'escalation dei blocchi.System-assigned ID of the table for which lock escalation was triggered. 2222 Yes
ObjectID2ObjectID2 bigintbigint ID dell'entità o dell'oggetto correlato.ID of the related object or entity. (ID HoBT per il quale è stata generata l'escalation dei blocchi).(HoBT ID for which the lock escalation was triggered.) 5656 Yes
OffsetOffset intint Offset iniziale dell'istruzione Transact-SQLTransact-SQL .Starting offset of Transact-SQLTransact-SQL statement. 6161 Yes
OwnerIDOwnerID intint 1=TRANSACTION1=TRANSACTION

2=CURSOR2=CURSOR

3=SESSION3=SESSION

4=SHARED_TRANSACTION_WORKSPACE4=SHARED_TRANSACTION_WORKSPACE

5=EXCLUSIVE_TRANSACTION_WORKSPACE5=EXCLUSIVE_TRANSACTION_WORKSPACE

6=WAITFOR_QUERY6=WAITFOR_QUERY
5858 Yes
RequestIDRequestID intint ID della richiesta contenente l'istruzione.ID of the request containing the statement. 4949 Yes
ServerNameServerName nvarcharnvarchar Nome dell'istanza di SQL ServerSQL Server tracciata.Name of the instance of SQL ServerSQL Server being traced. 2626 NoNo
SessionLoginNameSessionLoginName nvarcharnvarchar Nome dell'account di accesso dell'utente che ha avviato la sessione.Login name of the user who originated the session. Se ad esempio si stabilisce la connessione a SQL ServerSQL 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.For example, if you connect to SQL ServerSQL Server using Login1 and execute a statement as Login2, SessionLoginName shows Login1 and LoginName shows Login2. In questa colonna sono visualizzati sia gli account di accesso di SQL ServerSQL Server che quelli di Windows.This column displays both SQL ServerSQL Server and Windows logins. 6464 Yes
SPIDSPID intint ID della sessione in cui si è verificato l'evento.ID of the session on which the event occurred. 1212 Yes
StartTimeStartTime datetimedatetime Ora di inizio dell'evento, se disponibile.Time at which the event started, if available. 1414 Yes
TextDataTextData ntextntext Testo dell'istruzione Transact-SQLTransact-SQL che provoca l'escalation dei blocchi.Text of the Transact-SQLTransact-SQL statement that caused lock escalation. 11 Yes
TransactionIDTransactionID bigintbigint ID della transazione assegnato dal sistema.System-assigned ID of the transaction. 44 Yes
TipoType intint Granularità dell'escalation dei blocchi:Lock escalation granularity:

1=NULL_RESOURCE1=NULL_RESOURCE

2=DATABASE2=DATABASE

3=FILE3=FILE

5=OBJECT (livello della tabella)5=OBJECT (table level)

6=PAGE6=PAGE

7=KEY7=KEY

8=EXTENT8=EXTENT

9=RID9=RID

10=APPLICATION10=APPLICATION

11=METADATA11=METADATA

12=HOBT12=HOBT

13=ALLOCATION_UNIT13=ALLOCATION_UNIT
5757 Yes

EsempiExamples

Nel seguente esempio viene utilizzata la procedura sp_trace_create per creare una traccia, viene utilizzato sp_trace_setevent per aggiungere colonne dell'escalation dei blocchi alla traccia, quindi sp_trace_setstatus per avviare la traccia.The following example uses the sp_trace_create procedure to create a trace, uses sp_trace_setevent to add lock escalation columns to the trace, and then uses sp_trace_setstatus to start the trace. In istruzioni come EXEC sp_trace_setevent @TraceID, 60, 22, 1, il numero 60 indica la classe di evento dell'escalation, 22 indica la colonna ObjectID e 1 imposta l'evento di traccia su ON.In statements such as EXEC sp_trace_setevent @TraceID, 60, 22, 1, the number 60 indicates the escalation event class, 22 indicates the ObjectID column, and 1 sets the trace event to ON.

DECLARE @RC int, @TraceID int;  
EXEC @rc = sp_trace_create @TraceID output, 0, N'C:\TraceResults';  
-- Set the events and data columns you need to capture.  
EXEC sp_trace_setevent @TraceID, 60,  1, 1; --  1 = TextData  
EXEC sp_trace_setevent @TraceID, 60, 12, 1; -- 12 = SPID  
EXEC sp_trace_setevent @TraceID, 60, 21, 1; -- 21 = EventSubClass  
EXEC sp_trace_setevent @TraceID, 60, 22, 1; -- 22 = ObjectID  
EXEC sp_trace_setevent @TraceID, 60, 25, 1; -- 25 = IntegerData  
EXEC sp_trace_setevent @TraceID, 60, 55, 1; -- 25 = IntegerData2  
EXEC sp_trace_setevent @TraceID, 60, 57, 1; -- 57 = Type  
-- Set any filter  byusing sp_trace_setfilter.  
-- Start the trace.  
EXEC sp_trace_setstatus @TraceID, 1;  
GO  

Dal momento che la traccia è in esecuzione, eseguire le istruzioni che si desidera creare una traccia.Now that the trace is running, execute the statements that you want to trace. Una volta terminato, eseguire il seguente codice per arrestare e chiudere la traccia.When they finish, execute the following code to stop and then close the trace. Nell'esempio seguente viene utilizzata la funzione fn_trace_getinfo affinché traceid venga utilizzato nelle istruzioni sp_trace_setstatus .This example uses the fn_trace_getinfo function to get the traceid to be used in the sp_trace_setstatus statements.

-- After the trace is complete.  
DECLARE @TraceID int;  
-- Find the traceid of the current trace.  
SELECT @TraceID = traceid   
FROM ::fn_trace_getinfo(default)   
WHERE value = N'C:\TraceResults.trc';  

-- First stop the trace.   
EXEC sp_trace_setstatus @TraceID, 0;  

-- Close and then delete its definition from SQL Server.   
EXEC sp_trace_setstatus @TraceID, 2;  
GO  

Vedere ancheSee Also

sp_trace_setevent (Transact-SQL) sp_trace_setevent (Transact-SQL)
sys.dm_tran_locks (Transact-SQL) sys.dm_tran_locks (Transact-SQL)