스냅샷 격리 작업

적용 대상: SQL Server Azure SQL Database Azure SQL Managed Instance Azure Synapse Analytics Analytics Platform System(PDW)

OLE DB 드라이버 다운로드

SQL Server 2005(9.x)는 OLTP(온라인 트랜잭션 처리) 애플리케이션에 대한 동시성을 향상시키기 위한 새로운 "스냅샷" 격리 수준을 도입했습니다. 이전 버전의 SQL Server에서는 동시성이 잠금에만 기반하여 일부 애플리케이션에 대해 차단 및 교착 상태 문제를 일으킬 수 있습니다. 스냅샷 격리는 행 버전 관리 개선에 따라 달라지며 판독기 차단 시나리오를 방지하여 성능을 향상시키기 위한 것입니다.

스냅샷 격리에서 시작하는 트랜잭션은 트랜잭션이 시작되는 시점을 기준으로 데이터베이스 스냅샷을 읽습니다. 스냅샷 트랜잭션 컨텍스트 내에서 열린 동적 및 정적 서버 커서인 키 집합은 직렬화할 수 있는 트랜잭션 내에서 열린 정적 커서처럼 동작합니다. 하지만 스냅샷 격리 수준 하에서 커서를 열면 잠금이 수행되지 않습니다. 이로써 서버의 차단을 줄일 수 있습니다.

SQL Server용 OLE DB 드라이버

OLE DB Driver for SQL Server에는 SQL Server 2005(9.x)에 도입된 스냅샷 격리를 활용하는 향상된 기능이 있습니다. 이러한 향상된 기능에는 DBPROPSET_DATASOURCEINFO 및 DBPROPSET_SESSION 속성 집합의 변경 내용이 포함됩니다.

DBPROPSET_DATASOURCEINFO

DBPROP_SUPPORTEDTXNISOLEVELS 속성에 사용되는 DBPROPVAL_TI_SNAPSHOT 값을 추가하여 스냅샷 격리 수준이 지원됨을 나타내기 위해 DBPROPSET_DATASOURCEINFO 속성 집합이 변경되었습니다. 이 새 값은 데이터베이스에서 버전 관리가 사용되었는지 여부에 관계없이 스냅샷 격리 수준이 지원됨을 나타냅니다. 다음 표에서는 DBPROP_SUPPORTEDTXNISOLEVELS 값을 나열합니다.

속성 ID 설명
DBPROP_SUPPORTEDTXNISOLEVELS 유형: VT_I4

R/W: 읽기 전용

설명: 지원되는 트랜잭션 격리 수준을 지정하는 비트 마스크입니다. 다음을 0개 이상 조합하여 지정합니다.

DBPROPVAL_TI_CHAOS

DBPROPVAL_TI_READUNCOMMITTED

DBPROPVAL_TI_BROWSE

DBPROPVAL_TI_CURSORSTABILITY

DBPROPVAL_TI_READCOMMITTED

DBPROPVAL_TI_REPEATABLEREAD

DBPROPVAL_TI_SERIALIZABLE

DBPROPVAL_TI_ISOLATED

DBPROPVAL_TI_SNAPSHOT

DBPROPSET_SESSION

DBPROPSET_SESSION 속성 집합은 DBPROP_SESS_AUTOCOMMITISOLEVELS 속성에 사용되는 DBPROPVAL_TI_SNAPSHOT 값을 추가하여 스냅샷 격리 수준이 지원됨을 나타내도록 변경되었습니다. 이 새 값은 데이터베이스에서 버전 관리가 사용되었는지 여부에 관계없이 스냅샷 격리 수준이 지원됨을 나타냅니다. 다음 표에서는 DBPROP_SESS_AUTOCOMMITISOLEVELS 값을 나열합니다.

속성 ID 설명
DBPROP_SESS_AUTOCOMMITISOLEVELS 유형: VT_I4

R/W: 읽기 전용

설명: 자동 커밋 모드에서 트랜잭션 격리 수준을 나타내는 비트 마스크를 지정합니다. 이 비트 마스크에서 설정할 수 있는 값은 DBPROP_SUPPORTEDTXNISOLEVELS 대해 설정할 수 있는 값과 동일합니다.

참고 항목

SQL Server 2005(9.x) 이전 버전의 SQL Server를 사용할 때 DBPROPVAL_TI_SNAPSHOT 설정된 경우 DB_S_ERRORSOCCURRED 또는 DB_E_ERRORSOCCURRED 오류가 발생합니다.

스냅샷 격리가 트랜잭션에서 지원되는 방법은 로컬 트랜잭션 지원을 참조하세요.

참고 항목

SQL Server 기능용 OLE DB 드라이버
행 집합 속성 및 동작