블로그는 나의 힘!
[ Programing ]/Database2021. 3. 30. 09:46

-- 어떤 쿼리가 동작 하는지 확인. ('BlkBy' 컬럼에 값 있다면 Lock)
SQL> EXEC SP_WHO2

-- 내부 시스템 테이블로 Lock 확인.
SQL> SELECT * FROM SYS.SysProcesses WHERE blocked > 0;

-- 접속 유저 조회 ('Mode' 컬럼이 'X' 이면 Lock)

SQL> EXEC SP_LOCK

-- 강제 해제
SQL> KILL [SP_ID]

-- Lock 되어 있는 User 쿼리 조회
SQL> DBCC inputbuffer( [SP_ID] )



-- Lock 의심 유저 조회.
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..sysprocesses p
WHERE (
        STATUS LIKE 'run%'
        OR waittime > 0
        OR blocked <> 0
        OR open_tran <> 0
        OR EXISTS (
            SELECT *
            FROM master..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 0
        ELSE 1
        END
    ,waittime DESC
    ,open_tran DESC




참고 : MSSQL 락 걸린 쿼리 확인 후 강제 kill하기 :: no pain, no gain (tistory.com)

 

MSSQL 락 걸린 쿼리 확인 후 강제 kill하기

MSSQL을 사용하다 보면 select를 하고 싶은데 조회 결과가 나오지 않거나 타임아웃에 걸려 커넥션이 끊어지는 경우가 잇습니다. 테이블에 락이 걸려서 이런 현상이 발생하곤 하는데요. MSSQL의 경우

animal-park.tistory.com



https://dorumugs.tistory.com/entry/MSSQL-DB-Lock

 

MSSQL 너무 오래 걸리는데 DB Lock 일까?

[ 컴퓨터 장애처리 ] MS-SQL에서 쿼리를 열심히 작성해서 실행했는데, 한 시간 그리고 두 시간이 지나도 끝나지가 않는다. 이럴 때 문제를 확인하고 문제를 해결하는 방법은 명령어 4개이다. 하나

dorumugs.tistory.com

 

'[ Programing ] > Database' 카테고리의 다른 글

MS-SQL 주간 계산.  (0) 2021.04.28
MS-SQL SP Error Function  (0) 2021.04.20
[MSSQL] ERROR 15023  (0) 2021.03.30
MS-SQL 사용자 계정 조회.  (0) 2021.03.30
MS-SQL 로그인 계정 조회  (0) 2021.03.30
Posted by Mister_Q