반응형
문제 없이 쿼리를 작성하는게 베스트겠지만 예상치 못하는 문제로 인해 LOCK이 걸려 작업이 불가능한 경우가 있다.
이럴경우 문제가 되는 쿼리가 실행중인 프로세스를 죽여주는 방법이 필요하다.
현재 실행중인 쿼리 확인
SELECT
sqltext.TEXT,
req.session_id,
req.status,
req.command,
req.cpu_time,
req.total_elapsed_time
FROM sys.dm_exec_requests req
CROSS APPLY sys.dm_exec_sql_text(sql_handle) AS sqltext
현재 락 걸린 쿼리 확인
SELECT DISTINCT
name AS database_name,
session_id,
host_name,
login_time,
login_name,
reads,
writes
FROM sys.dm_exec_sessions
LEFT OUTER JOIN sys.dm_tran_locks ON sys.dm_exec_sessions.session_id = sys.dm_tran_locks.request_session_id
INNER JOIN sys.databases ON sys.dm_tran_locks.resource_database_id = sys.databases.database_id
WHERE resource_type <> 'DATABASE'
AND request_mode LIKE '%X%'
AND name ='내 db 명'
ORDER BY name
쿼리 죽이기
EXEC KILL [spid]
반응형
'[DataBase] > MSSQL' 카테고리의 다른 글
[MSSQL] 싱글유저 모드에서 멀티유저 모드 변경 오류 (0) | 2022.03.24 |
---|---|
MSSQL 인덱스 재구성, 인덱스 조각화 모음 (0) | 2022.03.07 |
[MSSQL] 보안 주의점 해킹시도 (0) | 2022.02.10 |
[MSSQL][시점복구] DB 원하는 시점으로 복구하기(+복구시점찾기, + 복구진행현황보기) (0) | 2022.01.18 |
[MSSQL TARNSACTION] 제발 작업할때 트랜좀 걸고해 (0) | 2022.01.17 |