DB

[MSSQL] LOCK 걸린거 찾기

조셉LEE 2024. 2. 22. 15:04
반응형

종종 필요하여 퍼왔습니다. 

--Lock 걸린 spid 검출(Mode 부분이 X로 표시된것이 lock)

EXEC sp_lock

--Lock 걸린 spid를 입력하면 현재 돌고 있는 쿼리를 출력해준다.

dbcc inputbuffer(80)

--Lock 을 유발하는 spid를 종료시킨다.

kill 78

 

--Lock으로 의심되는 spid만 추출

SELECT P.STATUS, P.PROGRAM_NAME, P.HOSTNAME, P.SPID, P.BLOCKED, P.KPID, P.CPU, P.physical_io, P.waittype, P.waittime, P.lastwaittype, P.waitresource, P.dbid
 , P.uid, P.memusage, P.login_time, P.last_batch, P.ecid, P.open_tran, P.sid, P.hostprocess
 , P.cmd, P.nt_domain, P.nt_username, P.net_address
 , P.net_library, P.loginame, P.context_info, P.sql_handle, P.stmt_start, P.stmt_end
  FROM master.sys.sysprocesses P
 WHERE (status LIKE 'RUN%' OR waittime > 0 OR blocked <> 0 OR open_tran <> 0
         OR EXISTS(SELECT FROM master.sys.sysprocesses P1 WHERE P.spid = P1.blocked AND P1.spid <> P1.blocked))
  AND spid > 50
  AND spid <> @@SPID
 ORDER BY CASE WHEN status LIKE 'RUN%' THEN ELSE END, waittime DESC, open_tran DESC

[퍼온글 ]posted by YA&JU 

 

반응형
LIST