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)
[출처] MS-SQL DB잠겼을때 exec sp_lock 방법 안내|작성자 살퀭이
'개발 > 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 |