Blocking 정보를 조회하는 스토어드 프로시저 - sp_who3
MS SQL Server에서 Blocking 혹은 Lock정보를 조회하기 위해서는 일반적으로 sp_who, sp_who2, sp_lock, sp_lockinfo 시스템 저장 프로시저를 이용해서 Blocking 정보를, DBCC INPUTBUFFER를 실행해서 Blocking 관련 SQL을 조회해야 하는 번거로움이 있다.
이번 포스트에서 소개하고자 하는 것은 바로 이런 번거로운 작업을 간단하게 해소하고자 필자가 작성한 스토어드 프로시저로써, sp_who3라고 명명하였다.
사용방법은 간단하다. 첨부된 스크립트를 master 데이터베이스에서 실행하여 프로시저를 등록한 후 실행만 하면 된다.
실행 결과는 다음과 같이 2단 테이블로 표시되며 조회되는 내용은 아래의 표를 참고하기 바란다.
|
[그림 1 sp_who3의 실행 예]
구문
EXEC sp_who3 |
결과 집합
컬럼 명 | 설명 |
---|---|
Blocked Session ID |
현재 해당 요청을 소유한 세션 ID - Blocking된 세션 ID |
Blocking Session ID |
현재 해당 요청을 Blocking하고 있는 세션 ID |
Database Name |
해당 요청의 데이터베이스 명 |
Resource Type |
해당 요청의 리소스 유형
가능한 값은 아래와 같다. DATABASE, FILE, OBJECT, PAGE, KEY, EXTENT, RID, APPLICATION, METADATA, HOBT, ALLOCATION_UNIT |
Request Owner Type |
해당 요청을 소유하는 엔티티 유형
가능한 값은 아래와 같다. TRANSACTION = 트랜잭션이 요청을 소유한다. CURSOR = 커서가 요청을 소유한다. SESSION = 사용자 세션이 요청을 소유한다. SHARED_TRANSACTION_WORKSPACE = 트랜잭션 작업 영역 중 공유 부분이 요청을 소유한다. EXCLUSIVE_TRANSACTION_WORKSPACE = 트랜잭션 작업 영역 중 배타 부분이 요청을 소유한다. |
Resource Description |
리소스 설명, 다른 리소스 열에서 사용할 수 없는 정보만 포함한다. |
Request Mode |
해당 요청의 모드 요청의 경우 허용 모드이고 대기 중인 요청의 경우에는 요청 중인 모드이다. |
Request Status |
해당 요청의 현재 상태
가능한 값은 아래와 같다. GRANT, CONVERT, WAIT |
Session ID |
1단 테이블의 Blocked 또는 Blocking 세션의 세션 ID |
Session Type |
Session ID의 Blocking 유형
가능한 값은 아래와 같다. Blocked Session, Blocking Session |
SQL |
Buffer에서 읽어온 해당 세션에서 실행된 SQL |
'연구개발 > SQL2005' 카테고리의 다른 글
SQL check - idera 사의 무료 모니터링 툴 (0) | 2011.07.18 |
---|---|
인덱스 조각화(단편화) 정보를 조회하는 뷰 2 (0) | 2011.07.18 |
스키마간에 개체 이동하기 (0) | 2011.07.18 |
오브젝트의 소유자 변경하기 (0) | 2011.07.18 |
데이터베이스 내의 모든 외래키 비활성화 및 활성화하기 (0) | 2011.07.18 |