빈번한 blocking 또는 lock 에 의한 오류를 겪고 있다면 sp_blocker_pss80 저장 프로시저를 활용하여 문제의 원인이 되는 정보를 캡쳐할 수 있습니다.
압축된 첨부 파일의 구성은 아래와 같습니다.
다음은 설치 및 자료를 수집하는 방법입니다.
1. sp_blocker_pss80.zip 파일 압축 해제합니다.
2. sp_blocker_pss80.sql 스크립트를 master 데이터베이스를 선택한 후 수행하여 저장 프로시저를 생성합니다.
3. Checkblk.sql 스크립트를 메모장으로 열어 blocking 상태 확인을 위해 저장 프로시저를 반복 수행할 주기를 변경합니다. (5~60초 사이)
3. 자료 수집을 시작하기 위해서는 Command Prompt 에서 아래 명령을 사용하여 쿼리를 수행하시면 됩니다.
수집이 완료되면 Ctrl+C 로 해당 작업을 종료하고 기록된 checkblk.out 파일을 분석하여 blocking 원인 파악을 시도합니다.
[다운로드]
압축된 첨부 파일의 구성은 아래와 같습니다.
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