반응형

Blocking 정보를 조회하는 스토어드 프로시저 - sp_who3



sp_who3-wing3a07.sql


 

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

 

반응형

+ Recent posts