Sdílet prostřednictvím


Práce s technologií izolace snímků

Platí na:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytický platformový systém (PDW)SQL databáze v Microsoft Fabric

Stáhnout ovladač OLE DB

SQL Server 2005 (9.x) představil novou úroveň izolace "snapshot", která má za cíl zlepšit souběžnost pro aplikace pro online transakční zpracování (OLTP). V dřívějších verzích SQL Serveru byla souběžnost založena výhradně na zamykání, což může způsobovat problémy s blokováním a deadlockem u některých aplikací. Izolace snímků závisí na vylepšeních verzování řádků a má za cíl zlepšit výkon tím, že se vyhne scénářům blokování čtenářem a pisatelem.

Transakce, které začínají v izolaci snapshotu, čtou snímk databáze v okamžiku, kdy transakce začne. Klíčové sady, dynamické a statické serverové kurzory, otevřené v kontextu snapshot transakce, se chovají podobně jako statické kurzory, které byly otevřeny v rámci serializovatelných transakcí. Když se však kurzory otevřou pod snapshotem, izolační zámky se neberou. Tento fakt může snížit blokování na serveru.

Ovladač OLE DB pro SQL Server

Ovladač OLE DB pro SQL Server obsahuje vylepšení, která využívají izolaci snapshotů zavedenou v SQL Server 2005 (9.x). Tato vylepšení zahrnují změny v sadách DBPROPSET_DATASOURCEINFO a DBPROPSET_SESSION.

DBPROPSET_DATASOURCEINFO

Sada DBPROPSET_DATASOURCEINFO vlastností byla změněna tak, aby označovala, že úroveň izolace snímku je podpořena přidáním hodnoty DBPROPVAL_TI_SNAPSHOT, která se používá v vlastnosti DBPROP_SUPPORTEDTXNISOLEVELS. Tato nová hodnota znamená, že úroveň izolace snímků je podporována bez ohledu na to, zda je v databázi povoleno verzování, nebo nikoliv. Následující tabulka uvádí hodnoty DBPROP_SUPPORTEDTXNISOLEVELS:

ID vlastnosti Description
DBPROP_SUPPORTEDTXNISOLEVELS Typ: VT_I4

R/W: Pouze pro čtení

Popis: Bitmaska specifikující podporované úrovně izolace transakcí. Kombinace nuly nebo více z následujících:

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

Sada DBPROPSET_SESSION vlastností byla změněna tak, aby označovala, že úroveň izolace snímku je podpořena přidáním hodnoty DBPROPVAL_TI_SNAPSHOT, která se používá v DBPROP_SESS_AUTOCOMMITISOLEVELS vlastnosti. Tato nová hodnota znamená, že úroveň izolace snímků je podporována bez ohledu na to, zda je v databázi povoleno verzování, nebo nikoliv. Následující tabulka uvádí hodnoty DBPROP_SESS_AUTOCOMMITISOLEVELS:

ID vlastnosti Description
DBPROP_SESS_AUTOCOMMITISOLEVELS Typ: VT_I4

R/W: Pouze pro čtení

Popis: Specifikuje bitovou masku, která indikuje úroveň izolace transakcí v režimu automatického potvrzení. Hodnoty, které lze nastavit v této bitové masce, jsou stejné jako hodnoty, které lze nastavit pro DBPROP_SUPPORTEDTXNISOLEVELS.

Poznámka:

Chyby DB_S_ERRORSOCCURRED nebo DB_E_ERRORSOCCURRED nastanou, pokud je DBPROPVAL_TI_SNAPSHOT nastaveno při použití verzí SQL Server starších než SQL Server 2005 (9.x).

Pro informace o tom, jak je izolace snímků podporována v transakcích, viz Podpora lokálních transakcí.

Viz také

OLE DB Driver for SQL Server Features
Vlastnosti a chování řádků