Lock:Escalation-EreignisklasseLock:Escalation Event Class

Die Lock:Escalation -Ereignisklasse zeigt an, dass eine differenziertere Sperre in eine gröbere Sperre konvertiert wurde (z.B. eine Zeilensperre, die in Objektsperre konvertiert wurde).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. Die Ausweitungsereignisklasse hat die Ereignis-ID 60.The escalation event class is Event ID 60.

Datenspalten der Lock:Escalation-EreignisklasseLock:Escalation Event Class Data Columns

DatenspaltennameData column name DatentypData type BeschreibungDescription Column IDColumn ID FilterbarFilterable
ApplicationNameApplicationName nvarcharnvarchar Name der Clientanwendung, die die Verbindung mit einer Instanz von SQL ServerSQL Serverhergestellt hat.Name of the client application that created the connection to an instance of SQL ServerSQL Server. Diese Spalte wird mit den Werten aufgefüllt, die von der Anwendung übergeben werden, und nicht mit dem angezeigten Namen des Programms.This column is populated with the values passed by the application rather than the displayed name of the program. 1010 jaYes
ClientProcessIDClientProcessID intint Die ID, die der Hostcomputer dem Prozess zuweist, in dem die Clientanwendung ausgeführt wird.ID assigned by the host computer to the process where the client application is running. Diese Datenspalte wird aufgefüllt, wenn der Client die Clientprozess-ID angibt.This data column is populated if the client provides the client process ID. 99 jaYes
DatabaseIDDatabaseID intint Die ID der Datenbank, in der die Sperre eingerichtet wurde.ID of the database in which the lock was acquired. SQL Server ProfilerSQL Server Profiler zeigt den Namen der Datenbank an, wenn die ServerName -Datenspalte in der Ablaufverfolgung aufgezeichnet wird und der Server verfügbar ist. displays the name of the database if the ServerName data column is captured in the trace and the server is available. Der Wert für eine Datenbank kann mithilfe der DB_ID-Funktion ermittelt werden.Determine the value for a database by using the DB_ID function. 33 jaYes
DatabaseNameDatabaseName nvarcharnvarchar Der Name der Datenbank, in der die Sperrenausweitung auftrat.Name of the database in which the escalation occurred. 3535 jaYes
EventClassEventClass intint Ereignistyp = 60.Type of event = 60. 2727 NeinNo
EventSubClassEventSubClass intint Die Ursache der Sperrenausweitung:Cause of the lock escalation:

0 - LOCK_THRESHOLD zeigt an, dass die Anweisung den Sperrengrenzwert überschritten hat.0 - LOCK_THRESHOLD indicates the statement exceeded the lock threshold.

1 - MEMORY_THRESHOLD zeigt an, dass die Anweisung den Grenzwert für den Arbeitsspeicher überschritten hat.1 - MEMORY_THRESHOLD indicates the statement exceeded the memory threshold.
2121 jaYes
EventSequenceEventSequence intint Sequenz eines bestimmten Ereignisses innerhalb der Anforderung.Sequence of a given event within the request. 5151 NeinNo
GroupIDGroupID intint ID der Arbeitsauslastungsgruppe, in der das SQL-Ablaufverfolgungsereignis ausgelöst wird.ID of the workload group where the SQL Trace event fires. 6666 jaYes
HostNameHostName nvarcharnvarchar Der Name des Computers, auf dem der Client ausgeführt wird.Name of the computer on which the client is running. Diese Datenspalte wird aufgefüllt, wenn der Hostname vom Client bereitgestellt wird.This data column is populated if the client provides the host name. Der Hostname kann mithilfe der HOST_NAME-Funktion bestimmt werden.To determine the host name, use the HOST_NAME function. 88 jaYes
IntegerDataIntegerData intint Die Anzahl der Heap- oder B-Struktursperren.HoBT lock count. Die Anzahl der Sperren für die Heap- oder B-Struktur zum Zeitpunkt der Sperrenausweitung.The number of locks for the HoBT at the time of lock escalation. 2525 jaYes
IntegerData2IntegerData2 intint Die Anzahl der ausgeweiteten Sperren.Escalated lock count. Die Gesamtanzahl von konvertierten Sperren.The total number of locks that were converted. Für diese Sperrenstrukturen wird die Zuweisung aufgehoben, da sie bereits durch die ausgeweitete Sperre abgedeckt sind.These lock structures are deallocated because they are already covered by the escalated lock. 5555 JaYes
IsSystemIsSystem intint Gibt an, ob das Ereignis bei einem Systemprozess oder einem Benutzerprozess aufgetreten ist.Indicates whether the event occurred on a system process or a user process. 1 = System, 0 = Benutzer.1 = system, 0 = user. 6060 jaYes
LineNumberLineNumber intint Die Zeilennummer der Transact-SQLTransact-SQL -Anweisung.Line number of Transact-SQLTransact-SQL statement. 55 jaYes
LoginNameLoginName nvarcharnvarchar Der Anmeldename des Benutzers ( SQL ServerSQL Server -Sicherheitsanmeldung oder MicrosoftMicrosoft Windows-Anmeldeinformationen im Format DOMAIN\username).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 jaYes
LoginSidLoginSid imageimage Sicherheits-ID (SID) des angemeldeten Benutzers.Security identification number (SID) of the logged-in user. Diese Informationen finden Sie in der sys.server_principals -Katalogsicht.You can find this information in the sys.server_principals catalog view. Die SID ist für jede Anmeldung beim Server eindeutig.Each SID is unique for each login in the server. 4141 JaYes
ModeMode intint Der Sperrmodus nach der Ausweitung.Resulting lock mode after the escalation:

0 = NULL - Kompatibel mit allen anderen Sperrmodi (LCK_M_NL)0=NULL - Compatible with all other lock modes (LCK_M_NL)

1 = Schemastabilitätssperre (LCK_M_SCH_S)1=Schema Stability lock (LCK_M_SCH_S)

2 = Schemaänderungssperre (LCK_M_SCH_M)2=Schema Modification Lock (LCK_M_SCH_M)

3 = Freigegebene Sperre (LCK_M_S)3=Shared Lock (LCK_M_S)

4 = Updatesperre (LCK_M_U)4=Update Lock (LCK_M_U)

5 = Exklusive Sperre (LCK_M_X)5=Exclusive Lock (LCK_M_X)

6 = Beabsichtigte freigegebene Sperre (LCK_M_IS)6=Intent Shared Lock (LCK_M_IS)

7 = Beabsichtigte Updatesperre (LCK_M_IU)7=Intent Update Lock (LCK_M_IU)

8 = Beabsichtigte exklusive Sperre (LCK_M_IX)8=Intent Exclusive Lock (LCK_M_IX)

9 = Freigegebene Sperre mit beabsichtigter Updatesperre (LCK_M_SIU)9=Shared with intent to Update (LCK_M_SIU)

10 = Freigegebene Sperre mit beabsichtigter exklusiver Sperre (LCK_M_SIX)10=Shared with Intent Exclusive (LCK_M_SIX)

11 = Updatesperre mit beabsichtigter exklusiver Sperre (LCK_M_UIX)11=Update with Intent Exclusive (LCK_M_UIX)

12 = Massenupdatesperre (LCK_M_BU)12=Bulk Update Lock (LCK_M_BU)

13 = Freigegebene Sperren für Schlüsselbereich und Ressource (LCK_M_RS_S)13=Key range Shared/Shared (LCK_M_RS_S)

14 = Freigegebene Sperre für Schlüsselbereich und Updatesperre für Ressource (LCK_M_RS_U)14=Key range Shared/Update (LCK_M_RS_U)

15 = Einfügungssperre für Schlüsselbereich und NULL-Sperre für Ressource (LCK_M_RI_NL)15=Key Range Insert NULL (LCK_M_RI_NL)

16 = Einfügungssperre für Schlüsselbereich und freigegebene Ressourcensperre (LCK_M_RI_S)16=Key Range Insert Shared (LCK_M_RI_S)

17 = Einfügungssperre für Schlüsselbereich und Updatesperre (LCK_M_RI_U)17=Key Range Insert Update (LCK_M_RI_U)

18 = Einfügungssperre für Schlüsselbereich und exklusive Ressourcensperre (LCK_M_RI_X)18=Key Range Insert Exclusive (LCK_M_RI_X)

19 = Exklusive Sperren für Schlüsselbereich und freigegebene Ressource (LCK_M_RX_S)19=Key Range Exclusive Shared (LCK_M_RX_S)

20 = Exklusive Sperren für Schlüsselbereich und Update (LCK_M_RX_U)20=Key Range Exclusive Update (LCK_M_RX_U)

21 = Exklusive Sperren für Schlüsselbereich und Ressource (LCK_M_RX_X)21=Key Range Exclusive Exclusive (LCK_M_RX_X)
3232 JaYes
NTDomainNameNTDomainName nvarcharnvarchar Windows-Domäne, zu der der Benutzer gehört.Windows domain to which the user belongs. 77 jaYes
NTUserNameNTUserName nvarcharnvarchar Windows-Benutzername.Windows user name. 66 jaYes
ObjectIDObjectID intint Die vom System zugewiesene ID der Tabelle, für die die Sperrenausweitung ausgelöst wurde.System-assigned ID of the table for which lock escalation was triggered. 2222 JaYes
ObjectID2ObjectID2 bigintbigint Die ID des verbundenen Objekts oder der verbundenen Entität.ID of the related object or entity. (Die Heap- oder B-Struktur-ID, für die die Sperrenausweitung ausgelöst wurde.)(HoBT ID for which the lock escalation was triggered.) 5656 jaYes
OffsetOffset intint Der Startoffset der Transact-SQLTransact-SQL -Anweisung.Starting offset of Transact-SQLTransact-SQL statement. 6161 jaYes
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 JaYes
RequestIDRequestID intint Die ID der Anforderung, die die Anweisung enthält.ID of the request containing the statement. 4949 jaYes
ServerNameServerName nvarcharnvarchar Name der SQL ServerSQL Server -Instanz, für die eine Ablaufverfolgung ausgeführt wird.Name of the instance of SQL ServerSQL Server being traced. 2626 NeinNo
SessionLoginNameSessionLoginName nvarcharnvarchar Der Anmeldename des Benutzers, der die Sitzung gestartet hat.Login name of the user who originated the session. Wenn Sie z. B. mit Login1 eine Verbindung zu SQL ServerSQL Server herstellen und mit Login2 eine Anweisung ausführen, zeigt SessionLoginName Login1 an, und LoginName zeigt Login2 an.For example, if you connect to SQL ServerSQL Server using Login1 and execute a statement as Login2, SessionLoginName shows Login1 and LoginName shows Login2. Diese Spalte zeigt sowohl den SQL ServerSQL Server - als auch den Windows-Anmeldenamen an.This column displays both SQL ServerSQL Server and Windows logins. 6464 jaYes
SPIDSPID intint Die ID der Sitzung, in der das Ereignis aufgetreten ist.ID of the session on which the event occurred. 1212 jaYes
StartTimeStartTime datetimedatetime Zeitpunkt, zu dem das Ereignis begonnen hat (falls vorhanden).Time at which the event started, if available. 1414 JaYes
TextDataTextData ntextntext Der Text der Transact-SQLTransact-SQL -Anweisung, die die Sperrenausweitung ausgelöst hat.Text of the Transact-SQLTransact-SQL statement that caused lock escalation. 11 JaYes
TransactionIDTransactionID bigintbigint Die vom System zugewiesene ID der Transaktion.System-assigned ID of the transaction. 44 JaYes
TypType intint Granularität der Sperrenausweitung:Lock escalation granularity:

1 = NULL_RESOURCE1=NULL_RESOURCE

2 = DATABASE2=DATABASE

3 = FILE3=FILE

5 = OBJECT (Tabellenebene)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 jaYes

BeispieleExamples

Im folgenden Beispiel wird mit der sp_trace_create -Prozedur eine Ablaufverfolgung erstellt, mit sp_trace_setevent werden der Ablaufverfolgung Spalten für die Sperrenausweitung hinzugefügt, und mit sp_trace_setstatus wird die Ablaufverfolgung gestartet.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 Anweisungen wie EXEC sp_trace_setevent @TraceID, 60, 22, 1zeigt die Zahl 60 die Ausweitungsereignisklasse und die Zahl 22 die ObjectID -Spalte an. Durch 1 wird das Ablaufverfolgungsereignis auf ON festgelegt.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  

Sobald die Ablaufverfolgung läuft, können Sie die zu verfolgenden Anweisungen ausführen.Now that the trace is running, execute the statements that you want to trace. Nach Abschluss der Anweisungen führen Sie den folgenden Code aus, um die Ablaufverfolgung zu beenden und zu schließen.When they finish, execute the following code to stop and then close the trace. In diesem Beispiel wird mit der fn_trace_getinfo -Funktion die in den traceid -Anweisungen zu verwendende sp_trace_setstatus abgerufen.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  

Siehe auchSee Also

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