다음을 통해 공유


트랜잭션 격리 수준 구성

COM+는 구성 가능한 트랜잭션 격리 수준을 허용하여 개발자가 애플리케이션을 더 많이 제어할 수 있도록 합니다. COM+ 1.5 이전의 COM+ 버전은 항상 트랜잭션에 가장 높은 수준의 격리를 사용했습니다. 이 수준은 데이터 무결성이 항상 유지되도록 보장하지만 대규모 데이터베이스에서 많은 트랜잭션을 수행해야 하는 경우 시간 제한과 같은 성능 문제가 발생할 수 있습니다. 구성 가능한 격리 수준을 사용하면 숙련된 개발자가 동시성을 높여 성능과 확장성을 향상시킬 수 있습니다.

COM+는 다음과 같은 트랜잭션 격리 수준을 제공합니다.

Level Description
직렬화된 현재 트랜잭션에서 읽은 데이터는 현재 트랜잭션이 완료될 때까지 다른 트랜잭션에서 변경할 수 없습니다. 현재 트랜잭션에 영향을 주는 새 데이터를 삽입할 수 없습니다. 가장 안전한 격리 수준이며 기본값입니다.
반복 읽기 현재 트랜잭션에서 읽은 데이터는 현재 트랜잭션이 완료될 때까지 다른 트랜잭션에서 변경할 수 없습니다. 트랜잭션 중에 모든 유형의 새 데이터를 삽입할 수 있습니다.
커밋된 읽기 트랜잭션은 커밋되지 않은 다른 트랜잭션에 의해 수정되는 데이터를 읽을 수 없습니다. 이는 Microsoft SQL Server 기본 격리 수준입니다.
커밋되지 않은 읽기 트랜잭션은 다른 트랜잭션에 의해 수정되는 경우에도 모든 데이터를 읽을 수 있습니다. 이는 가장 안전한 격리 수준이지만 가장 높은 동시성을 허용합니다.
모두 모든 격리 수준이 지원됩니다. 이 설정은 충돌을 방지하기 위해 다운스트림 구성 요소에서 가장 일반적으로 사용됩니다. 이 설정은 모든 다운스트림 구성 요소가 직접 업스트림 구성 요소의 격리 수준과 같거나 작은 격리 수준으로 구성되어야 하기 때문에 유용합니다. 따라서 격리 수준이 Any로 구성된 다운스트림 구성 요소는 항상 해당 즉시 업스트림 구성 요소에서 사용하는 것과 동일한 격리 수준을 사용합니다. 트랜잭션의 루트 개체에 격리 수준이 Any로 구성된 경우 격리 수준이 직렬화됩니다.

 

참고

다운스트림 구성 요소가 업스트림 구성 요소보다 높은 격리 수준으로 구성되고 트랜잭션에 참여하려고 하면 오류 결과와 트랜잭션이 중단됩니다.

 

트랜잭션 격리 수준 설정