2007~2011/SQL Server2011. 4. 8. 12:59
빈번한 blocking 또는 lock 에 의한 오류를 겪고 있다면 sp_blocker_pss80 저장 프로시저를 활용하여 문제의 원인이 되는 정보를 캡쳐할 수 있습니다. 

압축된 첨부 파일의 구성은 아래와 같습니다.

sp_blocker_pss80.sql : blocking 상태 정보 얻기
checkblk.sql : 위 프로시저를 루프에서 수행하기 위해 DELAY 설정 



다음은 설치 및 자료를 수집하는 방법입니다. 
1. sp_blocker_pss80.zip 파일 압축 해제합니다.
2. sp_blocker_pss80.sql 스크립트를 master 데이터베이스를 선택한 후 수행하여 저장 프로시저를 생성합니다.
3. Checkblk.sql 스크립트를 메모장으로 열어 blocking 상태 확인을 위해 저장 프로시저를 반복 수행할 주기를 변경합니다. (5~60초 사이)

WHILE 1=1
BEGIN 
   EXEC master.dbo.sp_blocker_pss80
   -- Or for fast mode 
   -- EXEC master.dbo.sp_blocker_pss80 @fast=1
   -- Or for latch mode 
   -- EXEC master.dbo.sp_blocker_pss80 @latch=1
   WAITFOR DELAY '00:00:30'
END
GO


3. 자료 수집을 시작하기 위해서는 Command Prompt 에서 아래 명령을 사용하여 쿼리를 수행하시면 됩니다.

C:\> osql –E –S LAIGODB –icheckblk.sql –ocheckblk.out –w2000


수집이 완료되면 Ctrl+C 로 해당 작업을 종료하고 기록된 checkblk.out 파일을 분석하여 blocking 원인 파악을 시도합니다.


[다운로드]


[참고자료]
How to monitor blocking in SQL Server 2005 and in SQL Server 2000
http://support.microsoft.com/kb/271509


작성자 : Lai Go / 작성일자 : 2011.04.11 
Posted by Lai Go