동시성 형식

커서의 동시성 감소 문제를 해결하기 위해 ODBC는 4가지 유형의 커서 동시성을 노출합니다.

  • 읽기 전용 인 커서는 데이터를 읽을 수 있지만 데이터를 업데이트하거나 삭제할 수는 없습니다. 기본 동시성 유형입니다. DBMS는 반복 가능한 읽기 및 직렬화 가능 격리 수준을 적용하기 위해 행을 잠글 수 있지만 쓰기 잠금 대신 읽기 잠금을 사용할 수 있습니다. 따라서 다른 트랜잭션이 적어도 데이터를 읽을 수 있으므로 동시성이 높아질 수 있습니다.

  • 잠금 커서는 결과 집합에서 행을 업데이트하거나 삭제할 수 있도록 하는 데 필요한 가장 낮은 수준의 잠금을 사용합니다. 따라서 일반적으로 동시성 수준이 매우 낮으며, 특히 반복 가능한 읽기 및 직렬화 가능 트랜잭션 격리 수준에서 발생합니다.

  • 행 버전을 사용하는 낙관적 동시성 및 값을 사용하는 낙관적 동시성 커서는 낙관적 동시성을 사용합니다. 마지막으로 읽은 이후 변경되지 않은 경우에만 행을 업데이트하거나 삭제합니다. 변경 내용을 검색하기 위해 행 버전 또는 값을 비교합니다. 커서가 행을 업데이트하거나 삭제할 수 있다는 보장은 없지만 잠금을 사용하는 경우보다 동시성이 훨씬 높습니다. 자세한 내용은 다음 섹션인 낙관적 동시성을 참조하세요.

애플리케이션은 커서가 SQL_ATTR_CONCURRENCY 문 특성과 함께 사용할 동시성 유형을 지정합니다. 지원되는 형식을 확인하기 위해 SQL_SCROLL_CONCURRENCY 옵션을 사용하여 SQLGetInfo를 호출합니다.