[ MSSQL ] Lock 관련명령 (2013.0325)
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
-------------------------------------------------------------------------------------------------------------------