개념/배경

운영 중 특정 데이터베이스에서 대기나 블로킹이 의심될 때, 현재 걸린 트랜잭션 락을 직접 확인하는 것이 우선임 SQL Server의 동적 관리 뷰 sys.dm_tran_locks는 활성 잠금 정보를 제공하며 데이터베이스 단위로 필터링 가능

사용법/예시

아래 쿼리로 대상 DB에 설정된 잠금 목록 조회

SELECT *
FROM sys.dm_tran_locks
WHERE resource_database_id = DB_ID('MY_DB')

요점 컬럼 참고

  • request_session_id: 잠금 보유 또는 대기 세션 ID
  • resource_type, resource_associated_entity_id: 잠금 대상 리소스 식별
  • request_mode: 잠금 모드 (S, X 등)
  • request_status: GRANT 또는 WAIT 상태

추가 확인 포인트

블로킹 체인 파악 필요 시 sys.dm_exec_requests, sys.dm_os_waiting_tasks와 조합하여 대기 중인 세션과 차단 세션 상관분석 권장 식별된 차단 세션은 영향 분석 후 종료 여부 판단

주의

해당 DMV 조회에는 일반적으로 서버 수준 VIEW SERVER STATE 권한 필요하며 환경에 따라 데이터베이스 수준 권한 요구 가능 운영 트래픽이 많은 시점에는 결과 해석 시점 차이 감안 필요

참고자료