잠금 호환성

리소스가 이미 다른 트랜잭션에 의해 잠겨 있는 상태이고 두 번째 트랜잭션에서 리소스에 액세스해야 하는 경우 Microsoft SQL Server Compact은 첫 번째 트랜잭션에 사용된 잠금 모드의 호환성을 기준으로 두 번째 잠금의 허가 여부를 결정합니다.

이미 잠겨진 리소스에는 호환 가능한 잠금 유형만 지정할 수 있습니다. 예를 들어 배타(X) 잠금을 사용하는 경우에는 첫 번째 트랜잭션이 종료되어 X 잠금이 해제되기 전에는 어떠한 트랜잭션도 해당 리소스에 대한 공유, 업데이트 또는 배타 잠금을 얻을 수 없습니다. 반대로 공유(S) 잠금이 리소스에 적용된 경우 첫 번째 트랜잭션이 완료되지 않았더라도 다른 트랜잭션이 해당 항목에 대해 공유 잠금 또는 업데이트(U) 잠금을 얻을 수 있습니다. 그러나 배타 잠금은 공유 잠금이 해제될 때까지 얻을 수 없습니다.

리소스 잠금 모드에는 동일한 리소스에서 얻은 다른 잠금과 호환 가능한 잠금을 잠금 강도 오름차순으로 나열한 호환성 매트릭스가 있습니다.

다음 표에서는 요청한 잠금 모드 및 이들 잠금 모드의 기존 잠금 모드와의 호환성을 보여 줍니다.

요청 모드

IS

S

U

IX

SIX

X

내재된 공유(IS)

아니요

공유(S)

아니요

아니요

아니요

업데이트(U)

아니요

아니요

아니요

아니요

의도 배타(IX)

아니요

아니요

아니요

아니요

의도 배타 공유(SIX)

아니요

아니요

아니요

아니요

아니요

배타(X)

아니요

아니요

아니요

아니요

아니요

아니요

참고 참고

IX는 의도 잠금이 전체가 아닌 일부 행만 업데이트함을 나타내기 때문에 IX 잠금은 IX 잠금 모드와 호환 가능합니다. 또한 일부 행이 다른 트랜잭션에서 업데이트 중인 행이 아닌 경우에는 다른 트랜잭션에서 해당 행을 읽거나 업데이트할 수 있습니다.

SQL Server Compact에서는 다음 잠금 범위를 지원합니다.

  • Sch-S, Sch-X, S, U, X, IS, IU, IX, SIU, SIX, UIX

참고 참고

스키마 안정성(Sch-S) 잠금은 스키마 수정(Sch-M) 잠금 모드를 제외한 모든 잠금 모드와 호환됩니다. Sch-M 잠금은 모든 잠금 모드와 호환되지 않습니다.

잠금 호환성 표는 SQL Server 온라인 설명서를 참조하십시오.

표시: