가라

[MS-SQL] NOLOCK

2012. 3. 6. 13:19 : MS-SQL
Select 를 할 때 SQL서버는 Select 를 하는 그 순간에만 공유 잠금(Shared Lock)을 건다.
그런데 이 공유 잠금은 Insert, Update, Delete 가 수행될 때 걸리는 베타적 자금(Exclusive Lock)과 함께 걸릴 수는 없다.
따라서 Select 를 하는 동안에는 공유 잠금이 걸린 곳에 대해 Insert, Update, Delete가 발생할 수 없기 때문에
질의 결과를 지연시키고 웹 언어(asp.net, asp)의 성능 저하를 가지고 오게 된다.
(noLock) 힌트를 사용하면 Select 를 하는 동안 선택된 레코드가 그 순간에 다른 Sql문에 변경될 수 있다.
이런 경우를 막기 위해 공유 잠금을 거는 것이다.

'MS-SQL' 카테고리의 다른 글

[MS-SQL] 사용자 정의 정렬  (0) 2012.06.20
[MS-SQL] 배열이용  (0) 2012.03.13
[MS-SQL] LDF 로그파일 정리  (0) 2012.01.12
[MS-SQL] 문자열 함수  (0) 2011.11.23
[MS-SQL] CONVERT 결과값  (0) 2011.11.08
Posted by 우리회사 개발자2