2016-10-25 19 views
0

하나는 READ_COMMITTED이고 다른 하나는 READ_UNCOMMITTED입니다. READ_COMMITTED 트랜잭션에서 잠금 예외가 발생합니다. 이 예외는 다른 READ_UNCOMMITTED 트랜잭션이 READ_COMMITTED가 검색하려고 시도하는 레코드를 수정하는 경우 발생합니다. 내 READ_UNCOMMITTED 트랜잭션을 완료하는 데 약간의 시간이 걸립니다. 격리 전략에 따라 READ_UNCOMMITTED는 잠금을 획득하지 않으며 READ_COMMITTED는 잠금을 획득하지 않습니다.READ_UNCOMMITTED 트랜잭션과 동시에 작동 할 때 READ_COMMITTED 잠금 전략은 무엇입니까

내 질문

  1. 무엇 잠금 전략 READ_COMMITTED 여기에 따르지이다.
  2. READ_UNCOMMITTED 트랜잭션에서 커밋되지 않은 레코드에 대한 잠금을 획득합니까? 또는 이전 거래의 커밋 된 기록에
+0

우리는 informix를 사용합니다 – krisp

+0

질문을 이해하기 위해 좀 더 많은 정보가 필요합니다. 'Informix'의 어떤 버전을 사용하고 있습니까? 2 개의 트랜잭션이하려고하는 더미 테이블을 간단한 예제로 제공 할 수 있습니까? –

답변

0

SQL Server가 읽기를 완료하자 마자 읽기 커밋 된 트랜잭션이 매우 짧은 시간 동안 공유 잠금을 갖게되며이 공유 잠금이 해제됩니다. 커밋되지 않은 트랜잭션을 읽은 다른 세션이 동일한 레코드를 동시에 업데이트하려고 시도하면 공유 잠금이 해제되지 않을 때까지 매우 짧은 시간 동안 차단됩니다.

읽기 커밋되지 않은 트랜잭션은 커밋되지 않은 레코드이고 공유 잠금을 발행하지 않는 더티 레코드를 읽습니다. 그러나 트랜잭션은 여전히 ​​독점 잠금을 발행합니다.