본문 바로가기
데이타베이스

[ MSSQL ] Lock 관련명령 (2013.0325)

by 보이드메인 2016. 1. 5.

1. 활성중인 트랜잭션 조회

DBCC OPENTRAN


2. Lock TimeOut 설정 값 조회 / default : -1(무제한)

SELECT @@LOCK_TIMEOUT


3. Lock TimeOUT 설정

SET LOCK_TIMEOUT 1800 -- 밀리세컨드로 3분설정

-- Lock이 걸린 후 3분이 지나면 세션이 끊김


4. Lock 확인 및 Lock 죽이기

EXEC sp_lock

-- 프로시저 실행하여 mode가 x인 것 확인

dbcc inputbuffer(spid)

-- mode가 x인 것의 spid를 입력하면 해당 테이블정보가 출력

kill spid

-- 문제가 되는 spid를 kill한다.


5. 데이터베이스를 사용하고 있는 사용자의 연결 정보

sp_who2



------------------------------------------------------------------------------------------------------------------

※ORACLE은 QUERY 실행시 WITH(NOLOCK)이 default지만, MSSQL은 NOLOCK가 셀프서비스임


[기본세팅]QUERY 실행 시 NOLOCK 자동 실행설정

=> 도구-옵션-QUERY 실행-SQL Server-고급-SET TRANSACTION ISOLATION LEVEL(READ UNCOMMITTED)


[수동세팅]QUERY 실행 시 LOCK 문구 추가

EX) SELECT * FROM [TEST] (NOLOCK)

※단, TABLE 명에 alias(별칭) 사용 시 별칭 뒤에 붙여야 함( [TEST] AS T (NOLOCK) )

출처:MSSQL에서 SELECT 시 LOCK이 발생할 경우 LOCK 제거

http://likekururu.egloos.com/69525

-------------------------------------------------------------------------------------------------------------------



댓글