티스토리 뷰

반응형

SQL 에서 SELECT 혹은 EXEC 와 같이 조회나 프로시저 실행 시 락에 걸려 우너하는 결과를 얻지 못하는 경우가 발생한다. 이때 락 걸린 프로세스를 종료하는 방법이다.

 

1. SP_LOCK & SP_WHO2

현재 락 걸린 세션 ID를 확인할 수 있도록 SP_LOCK를 제공합니다. 또 다른 함수로는 SP_WHO2 도 제공됩니다.

EXEC SP_LOCK
EXEC SP_WHO2

SP_LOCK 실행 결과

실행하면 위와 같은 결과가 나오는데 Mode 컬럼에 X 인 경우가 현재 락이 걸린 세션입니다.

 

SP_WHO2 실행 결과

BlkBy 컬럼에 값이 있다면 락이 걸린 세션입니다.

 

락이 걸린 세션을 확인했다면 해당 세션ID (SPID) 를 확인하여 해당 세션을 종료시켜주면 됩니다.

 

KILL (SPID)

다시 조회하면 락이 풀린 것을 확인할 수 있습니다.

 

 

https://docs.microsoft.com/ko-kr/sql/relational-databases/system-stored-procedures/sp-lock-transact-sql?view=sql-server-ver16 

 

sp_lock(Transact-SQL) - SQL Server

sp_lock(Transact-SQL)

docs.microsoft.com

https://docs.microsoft.com/ko-kr/sql/t-sql/language-elements/kill-transact-sql?view=sql-server-ver16 

 

KILL (Transact-SQL) - SQL Server

KILL(Transact-SQL)

docs.microsoft.com

 

반응형
댓글
반응형
최근에 올라온 글
최근에 달린 댓글
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31