mssql 에서 활성 중인 또는 실행 대기 중인 쿼리와 세션을 확인 하여 lock에 걸린 문제의 세션을 kill 하기.
--세션
SELECT sqltext.TEXT, req.session_id, req.status, req.start_time, req.command, req.cpu_time, req.wait_time, req.total_elapsed_time, text_size
FROM sys.dm_exec_requests req
CROSS APPLY sys.dm_exec_sql_text(sql_handle) AS sqltext
order by sqltext.TEXT, req.status
;
-- lock
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 ='YG1MES'
ORDER BY name
;
--kill 은 서버에서
kill session_id
;
'IT > DB' 카테고리의 다른 글
온/오프라인 쿼리 변환 도구 (0) | 2024.11.21 |
---|---|
MSSQL 계정 생성 시 에러 "이미 생성된 계정이 있습니다." (0) | 2024.05.03 |
MSSQL ERROR 8101 테이블 'TABLE_NAME'에 있는 ID 열의 명시적 값은 열 목록이 사용되고 IDENTITY_INSERT가 ON일 때만 지정할 수 있습니다. (0) | 2024.01.17 |
SQLD 기출문제(CBT) (0) | 2023.03.02 |
MariaDB 시간 설정 (0) | 2019.07.29 |