데드락이 걸린 테이블을 추적하는 쿼리가 있다는데
그게 어떻게 되는건가요?
고수님 궁금합니다
추적하는 쿼리는 별도로 없고요.(blocked lock은 쿼리로 보실수 있습니다)
sp_configure 'print deadlock information',1로 설정하시면
deadlock정보를 log파일에 남기니까 그것을 보시면 됩니다.
추가 설명입니다.
위에 분이 설명하신 내용과 같이 보시는게 좋은데요
dbcc traceon(3604)
-> 로그 내용을 화면으로 볼 수 있게 하는 설정입니다.
dbcc sqltext(spid) 하시면 dead lock 걸린 query를 볼수 있습니다.
그러나, 전체내용이 다 나오지 않을 수 있습니다.
여기서 spid는 락을 유발시킨 spid 또는 lock가 걸려 있는 spid이며,
해당 spid가 실행중에 있는 경우만 볼 수 있습니다.
(작업이 종료되면 당연히 트랜잭션이 종료되니까요)
위의 분의 내용은 일반적인 bolck lock를 확인 할때 사용하는 방법으로 dead lock확인은 거의 불가능하다고 보시면 됩니다.
그리고 프로그램이 끝나도 세션이 살아 있으면 dbcc sqltext는 실행을 해보실수 있습니다.
그리고 text가 작게 나오면
config 파라메터중
max SQL text monitored를 늘려주시면 됩니다.
단 주의 하실점을 max SQL text monitored는 유저별로 할당을 합니다.
예를 들면 4k로 할당하고 유저가 1000명이라면 4000K가 미리 할당됩니다.
수고하세요
고수님들의 설명 감사합니다
이곳 대전에 오시면 자판기커피라도 대접하겠습니다
꾸우벅~!!