SQL Server는 언제 잠금을 획득합니까?


10

여기에 있는 SQL Server의 격리 수준 목록 에는 트랜잭션 내에서 획득 한 쓰기 잠금이 트랜잭션이 끝날 때까지 유지된다고 나와 있습니다. 그러나 이러한 잠금을 획득 한 시점에 대해서는 언급하지 않습니다.

트랜잭션 시작시 또는 필요할 때 잠금이 기본적으로 획득됩니까? 후자가 사실이라면, X 잠금이 유지되는 시간을 최소화하기 위해 가능한 한 늦게 쓰기 작업을 수행하는 것이 큰 트랜잭션에서 유리합니까?

답변:


5

트랜잭션 시작시 또는 필요할 때 잠금이 기본적으로 획득됩니까?

읽기 또는 쓰기가 발생하기 직전에 잠금이 획득됩니다. 스토리지 엔진에 의해 선택된 잠금 세분성에 따라 행, 페이지, 파티션 또는 오브젝트 (테이블) 레벨에서 잠금을 획득 할 수 있습니다.

후자가 사실이라면, X 잠금이 유지되는 시간을 최소화하기 위해 가능한 한 늦게 쓰기 작업을 수행하는 것이 큰 트랜잭션에서 유리합니까?

예. 동시 트랜잭션에서 사용중인 격리 수준에 따라 동시성에 유리할 수 있습니다.

관련 독서 :

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.