Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
gäller för:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Important
SQL Server Native Client (SNAC) levereras inte med:
- SQL Server 2022 (16.x) och senare versioner
- SQL Server Management Studio 19 och senare versioner
SQL Server Native Client (SQLNCLI eller SQLNCLI11) och den äldre Microsoft OLE DB-providern för SQL Server (SQLOLEDB) rekommenderas inte för ny programutveckling.
Använd någon av följande drivrutiner för nya projekt:
För SQLNCLI som levereras som en komponent i SQL Server-databasmotorn (versioner 2012 till och med 2019), se det här Support Lifecycle-undantag.
SQL Server 2005 (9.x) introducerade en ny "snapshot"-isoleringsnivå som är avsedd att förbättra samtidigheten för onlinetransaktionsbehandling (OLTP)-applikationer. I tidigare versioner av SQL Server baserades samtidighet enbart på låsning, vilket kan orsaka blockerings- och deadlock-problem för vissa applikationer. Snapshot-isolering beror på förbättringar av radversionering och är avsedd att förbättra prestandan genom att undvika blockeringsscenarier mellan läsare och författare.
Transaktioner som startar under snapshot-isolering läser en databassnapshot från den tidpunkt då transaktionen startar. En följd av detta är att keyset-, dynamiska och statiska servermarkörer, när de öppnas inom en snapshot-transaktionskontext, beter sig ungefär som statiska markörer som öppnas i serialiserbara transaktioner. Men när markörerna öppnas under snapshot tas inte isoleringsnivålås, vilket kan minska blockeringen på servern.
SQL Server Native Client OLE DB-provider
SQL Server Native Client OLE DB-leverantören har förbättringar som utnyttjar snapshot-isoleringen som introducerades i SQL Server 2005 (9.x). Dessa förbättringar inkluderar förändringar i DBPROPSET_DATASOURCEINFO och DBPROPSET_SESSION egenskapsuppsättningar.
DBPROPSET_DATASOURCEINFO
Egenskapsuppsättningen DBPROPSET_DATASOURCEINFO har ändrats för att indikera att ögonblicksbildsisoleringsnivån stöds av tillägget av det DBPROPVAL_TI_SNAPSHOT-värde som används i DBPROP_SUPPORTEDTXNISOLEVELS-egenskapen. Detta nya värde indikerar att nivån för snapshot-isolering stöds oavsett om versionshantering har aktiverats i databasen eller inte. Följande är en lista över de DBPROP_SUPPORTEDTXNISOLEVELS värdena:
| Egenskaps-ID | Description |
|---|---|
| DBPROP_SUPPORTEDTXNISOLEVELS | Typ: VT_I4 R/W: Endast läs Beskrivning: En bitmask som specificerar de stödda transaktionsisoleringsnivåerna. En kombination av noll eller mer av följande: 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
Egenskapsuppsättningen DBPROPSET_SESSION har ändrats för att indikera att ögonblicksbildsisoleringsnivån stöds av tillägget av det DBPROPVAL_TI_SNAPSHOT värde som används i DBPROP_SESS_AUTOCOMMITISOLEVELS-egenskapen. Detta nya värde indikerar att nivån för snapshot-isolering stöds oavsett om versionshantering har aktiverats i databasen eller inte. Följande är en lista över de DBPROP_SESS_AUTOCOMMITISOLEVELS värdena:
| Egenskaps-ID | Description |
|---|---|
| DBPROP_SESS_AUTOCOMMITISOLEVELS | Typ: VT_I4 R/W: Endast läs Beskrivning: Specificerar en bitmask som anger transaktionsisoleringsnivån i autocommit-läge. De värden som kan sättas i denna bitmask är desamma som de som kan ställas in för DBPROP_SUPPORTEDTXNISOLEVELS. |
Note
Felen DB_S_ERRORSOCCURRED eller DB_E_ERRORSOCCURRED uppstår om DBPROPVAL_TI_SNAPSHOT är inställda vid användning av versioner av SQL Server tidigare än SQL Server 2005 (9.x).
För information om hur snapshot-isolering stöds i transaktioner, se Stöd för lokala transaktioner.
SQL Server Native Client ODBC-drivrutin
SQL Server Native Client ODBC-drivrutinen ger stöd för snapshot-isolering genom förbättringar av SQLSetConnectAttr och SQLGetInfo-funktionerna.
SQLSetConnectAttr
Funktionen SQLSetConnectAttr stöder nu användningen av attributet SQL_COPT_SS_TXN_ISOLATION. Att sätta SQL_COPT_SS_TXN_ISOLATION till SQL_TXN_SS_SNAPSHOT indikerar att transaktionen kommer att ske under snapshot-isoleringsnivån.
SQLGetInfo
Funktionen SQLGetInfo stöder nu det SQL_TXN_SS_SNAPSHOT värde som har lagts till i SQL_TXN_ISOLATION_OPTION info-typen.
För information om hur snapshot-isolering stöds i transaktioner, se Cursor Transaction Isolation Level.