격리 수준

트랜잭션 제어 메커니즘으로 잠금을 사용하면 동시성 문제를 해결할 수 있습니다. 언제든지 둘 이상의 트랜잭션을 실행할 수 있지만, 잠금을 사용하면 모든 트랜잭션을 서로 완전히 격리된 상태로 실행할 수 있습니다. 일치하지 않는 데이터를 승인하도록 트랜잭션을 준비하는 수준을 격리 수준이라고 합니다. 격리 수준을 높이면 데이터의 불일치를 줄일 수 있지만 동시성이 감소하는 단점이 있습니다.

Microsoft SQL Server 2005 Compact Edition(SQL Server Compact Edition)에서 응용 프로그램에 필요한 격리 수준은 SQL Server Compact Edition 에서 사용하는 잠금 동작을 결정합니다.

SQL Server Compact Edition 에서는 다음 격리 수준을 지원합니다(가장 낮은 수준에서 가장 높은 수준순).

  • 커밋된 읽기(SQL Server Compact Edition 기본값)
  • 반복 읽기
  • 순차 가능(트랜잭션이 서로 완전히 격리됨)

격리 수준이 높아지면 데이터의 불일치가 감소합니다. 그러나 트랜잭션의 동시성이 줄고 다중 사용자 액세스에 영향을 미칩니다.

[!참고] SQL Server Compact Edition 에서는 하나의 트랜잭션이 다른 트랜잭션의 커밋되지 않은 데이터를 읽을 수 없습니다(커밋되지 않은 읽기). 이러한 기능을 위해서는 사용자가 데이터의 S 잠금을 요청하지 않고 데이터를 읽을 수 있도록 하는 페이지 버전 관리 메커니즘을 사용해야 합니다. 그러므로 읽기(SELECT) 작업에 대해 예외적으로 동시성을 제공합니다.

격리 수준 및 동시성 문제

다음 표에서는 격리 수준 및 각 수준에 해당하는 동시성 문제를 보여 줍니다.

[!참고] 커밋되지 않은 종속성, 일관성이 없는 분석, 가상 읽기 등의 동시성 문제가 발생할 수 있습니다. 동시성 문제에 대한 자세한 내용은 동시성을 참조하십시오.

격리 수준 커밋되지 않은 종속성(커밋되지 않은 읽기) 일관성 없는 분석(반복되지 않는 읽기) 가상 읽기

커밋된 읽기

아니요

반복 읽기

아니요

아니요

순차 가능

아니요

아니요

아니요

격리 수준은 프로그래밍 방식으로 설정하거나 SQL 구문 SET TRANSACTION ISOLATION LEVEL을 사용하여 설정할 수 있습니다. 자세한 내용은 트랜잭션 격리 수준을 참조하십시오.

참고 항목

개념

트랜잭션(SQL Server Compact Edition)
잠금(SQL Server Compact Edition)
커서(SQL Server Compact Edition)

도움말 및 정보

SQL Server Compact Edition 지원 정보 보기