DBAtlas · 데이터베이스 운영 아틀라스

1222: Lock request time out period exceeded

SQL Server

의미

쿼리가 락 획득을 기다리는 동안 타임아웃이 만료되었다. 다른 트랜잭션이 필요한 리소스를 너무 오래 잠그고 있어 요청이 취소되었다.

원인

SET LOCK_TIMEOUT으로 설정한 대기 시간 초과, 장시간 실행되는 블로킹 트랜잭션, 커밋되지 않은 열린 트랜잭션, 긴 스캔과 락 충돌.

해결 방법

블로커를 찾는다: sys.dm_exec_requests, sys.dm_tran_locks와 blocking_session_id 컬럼을 확인하거나 sp_who2 / sp_whoisactive를 사용한다. 긴 트랜잭션을 짧게 하고 커밋한다. 필요하면 LOCK_TIMEOUT을 조정한다. 읽기 위주 시스템에서는 RCSI/snapshot isolation으로 읽기-쓰기 충돌을 줄인다.

DBAtlas에서 열기 →

같은 데이터베이스의 다른 항목