Lock:Escalation 이벤트 클래스Lock:Escalation Event Class

Lock:Escalation 이벤트 클래스는 행 잠금이 개체 잠금으로 변환되는 것과 같이 미세 잠금이 성긴 잠금으로 변환되었음을 나타냅니다.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. 에스컬레이션 이벤트 클래스는 이벤트 ID 60입니다.The escalation event class is Event ID 60.

Lock:Escalation 이벤트 클래스 데이터 열Lock:Escalation Event Class Data Columns

데이터 열 이름Data column name 데이터 형식Data type 설명Description 열 IDColumn ID 필터 가능Filterable
ApplicationNameApplicationName nvarcharnvarchar SQL ServerSQL Server인스턴스에 연결한 클라이언트 응용 프로그램의 이름입니다.Name of the client application that created the connection to an instance of SQL ServerSQL Server. 이 열은 프로그램의 표시 이름이 아니라 응용 프로그램에서 전달한 값으로 채워집니다.This column is populated with the values passed by the application rather than the displayed name of the program. 1010 Yes
ClientProcessIDClientProcessID intint 클라이언트 응용 프로그램이 실행 중인 프로세스에 대해 호스트 컴퓨터가 할당한 ID입니다.ID assigned by the host computer to the process where the client application is running. 클라이언트가 클라이언트 프로세스 ID를 제공하면 이 데이터 열이 채워집니다.This data column is populated if the client provides the client process ID. 99 Yes
DatabaseIDDatabaseID intint 잠금을 획득한 데이터베이스의 ID입니다.ID of the database in which the lock was acquired. SQL Server 프로파일러SQL Server Profiler ServerName 데이터 열이 추적에서 캡처되고 서버를 사용할 수 있으면 에 데이터베이스 이름이 표시됩니다. displays the name of the database if the ServerName data column is captured in the trace and the server is available. DB_ID 함수를 사용하여 데이터베이스의 값을 확인할 수 있습니다.Determine the value for a database by using the DB_ID function. 33 Yes
DatabaseNameDatabaseName nvarcharnvarchar 에스컬레이션이 발생한 데이터베이스의 이름입니다.Name of the database in which the escalation occurred. 3535 Yes
EventClassEventClass intint 이벤트 유형 = 60Type of event = 60. 2727 아니요No
EventSubClassEventSubClass intint 잠금 에스컬레이션의 원인:Cause of the lock escalation:

0 - LOCK_THRESHOLD 는 문이 잠금 임계값을 초과했음을 나타냅니다.0 - LOCK_THRESHOLD indicates the statement exceeded the lock threshold.

1 - MEMORY_THRESHOLD 는 문이 메모리 임계값을 초과했음을 나타냅니다.1 - MEMORY_THRESHOLD indicates the statement exceeded the memory threshold.
2121 Yes
EventSequenceEventSequence intint 요청 내에 지정된 이벤트 시퀀스입니다.Sequence of a given event within the request. 5151 아니요No
GroupIDGroupID intint SQL 추적 이벤트가 발생한 작업 그룹의 ID입니다.ID of the workload group where the SQL Trace event fires. 6666 Yes
HostNameHostName nvarcharnvarchar 클라이언트를 실행 중인 컴퓨터 이름입니다.Name of the computer on which the client is running. 클라이언트가 호스트 이름을 제공할 경우 이 데이터 열이 채워집니다.This data column is populated if the client provides the host name. 호스트 이름을 확인하려면 HOST_NAME 함수를 사용합니다.To determine the host name, use the HOST_NAME function. 88 Yes
IntegerDataIntegerData intint HoBT 잠금 카운트입니다.HoBT lock count. 잠금 에스컬레이션 시 HoBT의 잠금 수입니다.The number of locks for the HoBT at the time of lock escalation. 2525 Yes
IntegerData2IntegerData2 intint 에스컬레이션된 잠금 카운트입니다.Escalated lock count. 변환된 총 잠금 수 입니다.The total number of locks that were converted. 이러한 잠금 구조는 이미 에스컬레이션된 잠금으로 보호되므로 할당이 취소됩니다.These lock structures are deallocated because they are already covered by the escalated lock. 5555 Yes
IsSystemIsSystem intint 이벤트가 시스템 프로세스에서 발생했는지 아니면 사용자 프로세스에서 발생했는지를 나타냅니다.Indicates whether the event occurred on a system process or a user process. 1 = 시스템, 0 = 사용자1 = system, 0 = user. 6060 Yes
LineNumberLineNumber intint Transact-SQLTransact-SQL 문의 줄 수입니다.Line number of Transact-SQLTransact-SQL statement. 55 Yes
LoginNameLoginName nvarcharnvarchar 사용자 로그인 이름이며 DOMAIN\username 형식의 SQL ServerSQL Server Windows 로그인 자격 증명 또는 MicrosoftMicrosoft 보안 로그인입니다.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 로그인한 사용자의 SID(보안 ID)입니다.Security identification number (SID) of the logged-in user. 이 정보는 sys.server_principals 카탈로그 뷰에 있습니다.You can find this information in the sys.server_principals catalog view. 각 SID는 서버의 각 로그인마다 고유합니다.Each SID is unique for each login in the server. 4141 Yes
모드Mode intint 에스컬레이션 후의 결과 잠금 모드:Resulting lock mode after the escalation:

0=NULL - 모든 잠금 모드와 호환(LCK_M_NL)0=NULL - Compatible with all other lock modes (LCK_M_NL)

1=스키마 안정성 잠금(LCK_M_SCH_S)1=Schema Stability lock (LCK_M_SCH_S)

2=스키마 수정 잠금(LCK_M_SCH_M)2=Schema Modification Lock (LCK_M_SCH_M)

3=공유 잠금(LCK_M_S)3=Shared Lock (LCK_M_S)

4=업데이트 잠금(LCK_M_U)4=Update Lock (LCK_M_U)

5=배타 잠금(LCK_M_X)5=Exclusive Lock (LCK_M_X)

6=내재된 공유 잠금(LCK_M_IS)6=Intent Shared Lock (LCK_M_IS)

7=의도 업데이트 잠금(LCK_M_IU)7=Intent Update Lock (LCK_M_IU)

8=의도 배타 잠금(LCK_M_IX)8=Intent Exclusive Lock (LCK_M_IX)

9=의도 업데이트 공유(LCK_M_SIU)9=Shared with intent to Update (LCK_M_SIU)

10=의도 배타 공유(LCK_M_SIX)10=Shared with Intent Exclusive (LCK_M_SIX)

11=의도 배타 업데이트(LCK_M_UIX)11=Update with Intent Exclusive (LCK_M_UIX)

12=대량 업데이트 잠금(LCK_M_BU)12=Bulk Update Lock (LCK_M_BU)

13=키 범위 공유/공유(LCK_M_RS_S)13=Key range Shared/Shared (LCK_M_RS_S)

14=키 범위 공유/업데이트(LCK_M_RS_U)14=Key range Shared/Update (LCK_M_RS_U)

15=키 범위 삽입 NULL(LCK_M_RI_NL)15=Key Range Insert NULL (LCK_M_RI_NL)

16=키 범위 삽입 공유(LCK_M_RI_S)16=Key Range Insert Shared (LCK_M_RI_S)

17=키 범위 삽입 업데이트(LCK_M_RI_U)17=Key Range Insert Update (LCK_M_RI_U)

18=키 범위 삽입 배타(LCK_M_RI_X)18=Key Range Insert Exclusive (LCK_M_RI_X)

19=키 범위 배타 공유(LCK_M_RX_S)19=Key Range Exclusive Shared (LCK_M_RX_S)

20=키 범위 배타 업데이트(LCK_M_RX_U)20=Key Range Exclusive Update (LCK_M_RX_U)

21=키 범위 배타 배타(LCK_M_RX_X)21=Key Range Exclusive Exclusive (LCK_M_RX_X)
3232 Yes
NTDomainNameNTDomainName nvarcharnvarchar 사용자가 속한 Windows 도메인입니다.Windows domain to which the user belongs. 77 Yes
NTUserNameNTUserName nvarcharnvarchar Windows 사용자 이름입니다.Windows user name. 66 Yes
Exchange SpillObjectID intint 잠금 에스컬레이션이 트리거된 테이블의 시스템 할당 ID입니다.System-assigned ID of the table for which lock escalation was triggered. 2222 Yes
ObjectID2ObjectID2 bigintbigint 관련 개체 또는 엔터티의 ID입니다.ID of the related object or entity. 즉, 잠금 에스컬레이션이 트리거된 HoBT ID입니다.(HoBT ID for which the lock escalation was triggered.) 5656 Yes
OffsetOffset intint 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입니다.ID of the request containing the statement. 4949 Yes
데이터 열이 추적에서 캡처되고 서버를 사용할 수 있으면ServerName nvarcharnvarchar 추적 중인 SQL ServerSQL Server 인스턴스의 이름입니다.Name of the instance of SQL ServerSQL Server being traced. 2626 아니요No
SessionLoginNameSessionLoginName nvarcharnvarchar 세션을 시작한 사용자의 로그인 이름입니다.Login name of the user who originated the session. 예를 들어 Login1을 사용하여 SQL ServerSQL Server 에 연결하고 Login2로 문을 실행할 경우 SessionLoginName 은 Login1을 표시하고 LoginName 은 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. 이 열은 SQL ServerSQL Server 및 Windows 로그인을 모두 표시합니다.This column displays both SQL ServerSQL Server and Windows logins. 6464 Yes
SPIDSPID intint 이벤트가 발생한 세션의 ID입니다.ID of the session on which the event occurred. 1212 Yes
StartTimeStartTime datetimedatetime 이벤트가 시작된 시간입니다(사용 가능한 경우).Time at which the event started, if available. 1414 Yes
TextDataTextData ntextntext 잠금 에스컬레이션을 발생시킨 Transact-SQLTransact-SQL 문의 텍스트입니다.Text of the Transact-SQLTransact-SQL statement that caused lock escalation. 11 Yes
TransactionIDTransactionID bigintbigint 시스템이 할당한 트랜잭션의 ID입니다.System-assigned ID of the transaction. 44 Yes
형식Type intint 잠금 에스컬레이션 세분성:Lock escalation granularity:

1=NULL_RESOURCE1=NULL_RESOURCE

2=DATABASE2=DATABASE

3=FILE3=FILE

5=OBJECT(테이블 수준)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

Examples

다음 예에서는 sp_trace_create 프로시저를 사용하여 추적을 만들고 sp_trace_setevent 를 사용하여 추적에 잠금 에스컬레이션 열을 추가한 다음 sp_trace_setstatus 를 추적을 시작합니다.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. EXEC sp_trace_setevent @TraceID, 60, 22, 1과 같은 문에서 숫자 60 은 에스컬레이션 이벤트 클래스를 나타내고, 22ObjectID 열을 나타내며, 1 은 추적 이벤트를 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  

이제 추적이 실행되고 있으므로 추적할 문을 실행합니다.Now that the trace is running, execute the statements that you want to trace. 문이 완료되면 다음 코드를 실행하여 추적을 중지한 다음 닫습니다.When they finish, execute the following code to stop and then close the trace. 이 예에서는 fn_trace_getinfo 함수를 사용하여 traceidsp_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  

참고 항목See Also

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