MS-SQL DB잠겼을때 exec sp_lock 방법 안내

 

DB가 갑자기 느려졌을 경우에 확인 할 수 있는 방법 중 하나 입니다.

우선적으로

잠기는 종류가 크게 두가지로 나뉩니다.

 

공유잠금(shared lock)과 배타적 잠금(exclusive lock) 으로 나뉘어요.

전 lock 프로시저를 활용하는 방법으로 안내 해드리겠습니다.

 

아래와 같이  exec sp_lock 쿼리로 lock 정보를 확인하실 수 있습니다.

보통 spid 가 중복으로 여러개 붙은 것들은 kill 해주시면 되긴하지만

MODE의 값을 확인하고 KILL 시키면 더 좋겠죠?

 

1. 아래 컬럼값들에 대해 설명 해드리도록 하겠습니다.

 

SPID 

->잠금을 요청하는 프로세스의 세션ID

DBID

-> 데이터베이스의 식별번호

OBID

-> 개체의 식별번호

INDLD

-> 인덱스의 식별번호

TYPE

-> 잠금유형

RESOURCE

-> 리소스 식별값

MODE

-> 잠금

STATUS

-> 잠금요청상태 

 

 

2. MODE 값 상세 설명

 

S-> 공유 잠금

U-> 업데이트 잠금

X-> 독점 잠금

IS-> 의도 공유

IU-> 의도 업데이트

IX-> 독점 의도

BU-> 대량 업데이트 

 

 

 3. 잠김 값의 수행된 쿼리정보 확인 하는 방법

 

dbcc inputbuffer (spid)

EventInfo 쿼리 정보 나옴

 

 

4. 좀더 정확한 정보를 확인 하는 방법

 

exec sp_who2 spid

 

 

5. 프로시져 죽이는 방법

 

kill (spid)

 

'개발 > DB' 카테고리의 다른 글

MS SQL 저장 프로시저  (0) 2015.03.02
join query image  (0) 2015.01.29
날짜 쿼리  (0) 2014.06.12
DB 쿼리 기초  (0) 2014.06.12
결과값의 특정 행만 출력, WITH, ROW_NUMBER()  (0) 2014.06.12

+ Recent posts