컴파일 한 번에 성공하는 그 날까지👀

코딩왕이 되고싶은 이코딩의 개발괴발 개발일지 😼

개발괴발🐾/MSSQL

[QUERY] 데드락 발생 시 해결 방법 (Dead lock)

OI코딩 2024. 3. 19. 17:04

 

데드락이란? 두 트랜잭션 모두가 블로킹 상태에 진입하여 서로의 블로킹을 해결할 수 없는 상태이다. 

= 작업하다가 엉켜서 꼼짝 못하고 있다 이말이다 ㅠ.. 

쿼리의 문제일수도 있고 서버의 문제일수도 있는데, 아무튼 해결해보자.

 

1. sp_lock 실행

Mode 컬럼의 값이 X 이면 데드락 상태에 빠졌다고 볼 수 있다. 

exec sp_lock

 

 

2. 락이 걸린 쿼리문 확인

EventInfo 컬럼을 통해 락을 발생시킨 쿼리문을 확인할 수 있다.

dbcc inputbuffer(spid)

 

3. 락 제거 (kill)

얼른 죽이자.

kill spid