데드락이 발생할 때 원인을 분석하는 방법은 여러가지가 있지만,
가장 좋은 방법은 추적플래그 1204를 설정하는 것이다.
현상이 언제 재현될지도 데드락을 미리 준비해놓을 수도 있고, 원인분석도 확실하다.

사용방법은 간단하다.
쿼리분석기에서 다음의 쿼리를 실행시킨다.

DBCC TRACEON(1204, -1)

이 플래그는 일단 한번 실행되면 전역으로 영향을 미친다.
DB 서버 옵션에서 DB 시작시마다 자동으로 실행되도록 할 수도 있다.

추적플래그가 설정된 이후에 데드락이 발생하면 트레이스 결과가 DBMS 설치경로 밑의 LOG 폴더에 ERRORLOG 파일에 기록된다.
다음은 기록된 로그파일의 예다. 데드락이 발생한 시간, SPID, 데드락을 유발시킨 SQL문 등 원인파악에 필요한 정보들이 기록되어 있다.

2008-08-17 19:31:31.83 spid4    
Deadlock encountered .... Printing deadlock information
2008-08-17 19:31:31.83 spid4    
2008-08-17 19:31:31.83 spid4     Wait-for graph
2008-08-17 19:31:31.83 spid4    
2008-08-17 19:31:31.83 spid4     Node:1
2008-08-17 19:31:31.83 spid4     KEY: 7:1608392799:2 (02005a9fb1b0) CleanCnt:2 Mode: X Flags: 0x0
2008-08-17 19:31:31.83 spid4      Grant List 0::
2008-08-17 19:31:31.83 spid4        Owner:0x2825f6e0 Mode: X        Flg:0x0 Ref:0 Life:02000000 SPID:53 ECID:0
2008-08-17 19:31:31.83 spid4        SPID: 53 ECID: 0 Statement Type: UPDATE Line #: 1
2008-08-17 19:31:31.83 spid4        Input Buf: Language Event: UPDATE UPDATE_TAB
SET MANAGE = 0
WHERE MANAGE = 1

2008-08-17 19:31:31.83 spid4      Requested By:
2008-08-17 19:31:31.83 spid4        ResType:LockOwner Stype:'OR' Mode: U SPID:52 ECID:0 Ec:(0x295CF520) Value:0x28221de0 Cost:(0/2FC)
2008-08-17 19:31:31.84 spid4    
2008-08-17 19:31:31.84 spid4     Node:2
2008-08-17 19:31:31.84 spid4     PAG: 7:1:5647                  CleanCnt:2 Mode: X Flags: 0x2
2008-08-17 19:31:31.84 spid4      Grant List 0::
2008-08-17 19:31:31.84 spid4        Owner:0x282202e0 Mode: X        Flg:0x0 Ref:1 Life:02000000 SPID:52 ECID:0
2008-08-17 19:31:31.84 spid4        SPID: 52 ECID: 0 Statement Type: UPDATE Line #: 1
2008-08-17 19:31:31.84 spid4        Input Buf: Language Event: UPDATE TEST_TAB
SET MANAGE = 0
WHERE MANAGE = 1

2008-08-17 19:31:31.84 spid4      Requested By:
2008-08-17 19:31:31.84 spid4        ResType:LockOwner Stype:'OR' Mode: U SPID:53 ECID:0 Ec:(0x292E5520) Value:0x2824b380 Cost:(0/18C4)
2008-08-17 19:31:31.84 spid4     Victim Resource Owner:
2008-08-17 19:31:31.84 spid4      ResType:LockOwner Stype:'OR' Mode: U SPID:52 ECID:0 Ec:(0x295CF520) Value:0x28221de0 Cost:(0/2FC)

Posted by kuaaan
,


사랑합니다. 편안히 잠드소서