Search

2016년 1월 13일 수요일

[Database] [MSSQL] 데이터베이스 내 Lock Timeout 설정하기.

* 하나의 트랜잭션이 Lock을 오래도록 잡고 있으면(데드락 같은 경우를 제외하고) Blocking의 시간이 길어지게 된다. 이로 인해 추후의 트랜잭션들에게도 Blocking을 계속 유발할 수도 있다.
 그래서 Lock Timeout을 제한하여 일정 시간동안 Blocking 상태에 빠지면, 스스로 트랜잭션을 중단하게 만들 수 있다.

* 먼저 아래의 쿼리를 통해 데이터베이스의 Lock Timeout 시간을 확인해보자.
  -1 이라는 값은, Lock Timeout에 대한 제한이 없음을 의미한다(Default 값임).
 참조 : https://msdn.microsoft.com/ko-kr/library/ms182729(v=sql.120).aspx

SELECT @@LOCK_TIMEOUT AS Lock Timeout

* 설정은 다음과 같이 한다.
 참조 : https://msdn.microsoft.com/en-us/library/ms189470.aspx

-- 밀리초 단위로 지정해야 한다. (1초 = 1000밀리초)
-- Lock Timeout을 3초로 한다면,
SET LOCK_TIMEOUT 3000

-- Lock Timeout을 Default 값으로 되돌리려면,
SET LOCK_TIMEOUT -1



댓글 없음:

댓글 쓰기