Lock:Deadlock 이벤트 클래스
Lock:Deadlock 이벤트 클래스는 잠금을 얻으려고 시도하는 동안 교착 상태가 발생하여 이 시도가 취소될 때 생성됩니다.
Lock:Deadlock 이벤트 클래스를 사용하여 교착 상태 발생 시기와 관련된 개체를 모니터링할 수 있습니다. 이 정보를 사용하면 교착 상태로 인해 응용 프로그램 성능이 심하게 저하되는지 여부를 확인할 수 있습니다. 그러면 응용 프로그램 코드를 조사하여 교착 상태를 최소화하도록 변경할 수 있는지 알 수 있습니다.
Lock:Deadlock 이벤트 클래스 데이터 열
데이터 열 이름 | 데이터 형식 | 설명 | 열 ID | 필터 가능 |
---|---|---|---|---|
ApplicationName |
nvarchar |
SQL Server 인스턴스와의 연결을 만든 클라이언트 응용 프로그램의 이름입니다. 이 열은 프로그램의 표시 이름이 아니라 응용 프로그램에서 전달한 값으로 채워집니다. |
10 |
예 |
BinaryData |
image |
리소스 식별자를 잠급니다. |
2 |
예 |
ClientProcessID |
int |
클라이언트 응용 프로그램이 실행 중인 프로세스에 대해 호스트 컴퓨터가 할당한 ID입니다. 클라이언트가 클라이언트 프로세스 ID를 제공하면 이 데이터 열이 채워집니다. |
9 |
예 |
DatabaseID |
int |
잠금을 얻은 데이터베이스의 ID입니다. ServerName 데이터 열이 추적에서 캡처되고 서버를 사용할 수 있는 경우 SQL Server 프로파일러 에 데이터베이스 이름이 표시됩니다. DB_ID 함수를 사용하여 데이터베이스에 대한 값을 결정합니다. |
3 |
예 |
DatabaseName |
nvarchar |
잠금을 얻은 데이터베이스 이름입니다. |
35 |
예 |
Duration |
bigint |
잠금 요청이 발생한 시간과 교착 상태가 발생한 시간 사이의 간격(마이크로초)입니다. |
13 |
예 |
EndTime |
datetime |
교착 상태가 끝난 시간입니다. |
15 |
예 |
EventClass |
int |
이벤트 유형 = 25 |
27 |
아니요 |
EventSequence |
int |
요청 내의 지정된 이벤트 시퀀스입니다. |
51 |
아니요 |
HostName |
nvarchar |
클라이언트를 실행 중인 컴퓨터의 이름입니다. 클라이언트가 호스트 이름을 제공할 경우 이 데이터 열이 채워집니다. 호스트 이름을 확인하려면 HOST_NAME 함수를 사용합니다. |
8 |
예 |
IntegerData |
int |
교착 상태 번호입니다. 서버가 시작되면 번호가 0부터 시작되어 교착 상태마다 증가합니다. |
25 |
예 |
IntegerData2 |
int |
나중에 사용하도록 예약되었습니다. |
55 |
예 |
IsSystem |
int |
이벤트가 시스템 프로세스에서 발생했는지 아니면 사용자 프로세스에서 발생했는지를 나타냅니다. 1 = 시스템, 0 = 사용자. |
60 |
예 |
LoginName |
nvarchar |
사용자 로그인 이름(DOMAIN\username 형식의 Microsoft Windows 로그인 자격 증명 또는 SQL Server 보안 로그인)입니다. |
11 |
예 |
LoginSid |
image |
로그인한 사용자의 SID(보안 ID)입니다. 이 정보는 master 데이터베이스의 syslogins 테이블에 있습니다. 각 SID는 서버의 각 로그인마다 고유합니다. |
41 |
예 |
모드 |
int |
교착 상태 후의 결과 모드입니다. 0=NULL - 모든 잠금 모드와 호환(LCK_M_NL) 1=스키마 안정성 잠금(LCK_M_SCH_S) 2=스키마 수정 잠금(LCK_M_SCH_M) 3=공유 잠금(LCK_M_S) 4=업데이트 잠금(LCK_M_U) 5=배타 잠금(LCK_M_X) 6=의도 공유 잠금(LCK_M_IS) 7=의도 업데이트 잠금(LCK_M_IU) 8=의도 배타 잠금(LCK_M_IX) 9=의도 업데이트 공유(LCK_M_SIU) 10=의도 배타 공유(LCK_M_SIX) 11=의도 배타 업데이트(LCK_M_UIX) 12=대량 업데이트 잠금(LCK_M_BU) 13=키 범위 공유/공유(LCK_M_RS_S) 14=키 범위 공유/업데이트(LCK_M_RS_U) 15=키 범위 삽입 NULL(LCK_M_RI_NL) 16=키 범위 삽입 공유(LCK_M_RI_S) 17=키 범위 삽입 업데이트(LCK_M_RI_U) 18=키 범위 삽입 배타(LCK_M_RI_X) 19=키 범위 배타 공유(LCK_M_RX_S) 20=키 범위 배타 업데이트(LCK_M_RX_U) 21=키 범위 배타 배타(LCK_M_RX_X) |
32 |
예 |
NTDomainName |
nvarchar |
사용자가 속한 Windows 도메인입니다. |
7 |
예 |
NTUserName |
nvarchar |
Windows 사용자 이름입니다. |
6 |
예 |
ObjectID |
int |
연결에 포함된 개체 ID입니다(사용 및 적용 가능한 경우). |
22 |
예 |
ObjectID2 |
bigint |
관련 개체 또는 엔터티의 ID입니다(사용 및 적용 가능한 경우). |
56 |
예 |
OwnerID |
int |
1=TRANSACTION 2=CURSOR 3=SESSION 4=SHARED_TRANSACTION_WORKSPACE 5=EXCLUSIVE_TRANSACTION_WORKSPACE |
58 |
예 |
RequestID |
int |
문을 포함하는 요청의 ID입니다. |
49 |
예 |
ServerName |
nvarchar |
추적 중인 SQL Server 인스턴스의 이름입니다. |
26 |
아니요 |
SessionLoginName |
nvarchar |
세션을 시작한 사용자의 로그인 이름입니다. 예를 들어 Login1을 사용하여 SQL Server 에 연결하고 Login2로 문을 실행할 경우 SessionLoginName은 Login1을 표시하고 LoginName은 Login2를 표시합니다. 이 열은 SQL Server 및 Windows 로그인을 모두 표시합니다. |
64 |
예 |
SPID |
int |
이벤트가 발생한 세션의 ID입니다. |
12 |
예 |
StartTime |
datetime |
사용 가능한 경우 이벤트가 시작된 시간입니다. |
14 |
예 |
TextData |
ntext |
획득한 잠금 유형에 따라 달라지는 텍스트 값입니다. |
1 |
예 |
TransactionID |
bigint |
시스템이 할당한 트랜잭션 ID입니다. |
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 |
예 |
참고 항목
개념
데이터베이스 엔진에서의 잠금
잠금 호환성(데이터베이스 엔진)
관련 자료
이벤트 모니터링
sp_trace_setevent(Transact-SQL)
sys.dm_tran_locks