Udostępnij za pośrednictwem


Praca z izolacji migawki

SQL Server 2005 wprowadzony nowy "migawka" poziom izolacji przeznaczonymi do ulepszenia współbieżność dla transakcji online (OLTP) wniosków.W starszych wersjach SQL Server, współbieżność został wyłącznie na podstawie blokowania, które powodują problemy z blokowaniem i deadlocking dla niektórych aplikacji.Migawki izolacji zależy od rozszerzenia wersji wiersza i przeznaczone do poprawy wydajności poprzez unikanie blokowania scenariuszach moduł zapisujący czytnika.

Transakcje uruchamianych w izolacji migawki odczytać migawka bazy danych jako czas podczas uruchamiania transakcji.Jeden wynik tego jest tego zestawu dynamicznych i statycznych serwera kursory, po otwarciu w kontekście transakcji migawka, zachowują się podobnie jak kursory statyczne otwarty w obrębie transakcji serializować.Jednakże gdy kursory są otwarte w ramach poziom izolacji migawka blokad nie zostaną podjęte, które zmniejszają blokowanie na serwerze.

Więcej informacji o SQL Serverdla wsparcia dla migawka izolacji, zobacz Opis wiersza na podstawie wersji poziomów izolacji.

Dostawca OLE DB programu SQL Server Native Client

SQL Server Macierzystego klienta dostawca OLE DB ma rozszerzenia, które zalet izolacji migawka, wprowadzone w SQL Server 2005.Ulepszenia te obejmują zmiany zestawy właściwość DBPROPSET_DATASOURCEINFO i DBPROPSET_SESSION.

DBPROPSET_DATASOURCEINFO

Aby wskazać, że został zmieniony zestaw właściwość DBPROPSET_DATASOURCEINFO poziom izolacji migawka jest obsługiwany przez dodanie wartości DBPROPVAL_TI_SNAPSHOT używany we właściwość DBPROP_SUPPORTEDTXNISOLEVELS.Nowa wartość ta wskazuje, że poziom izolacji migawka jest obsługiwany czy nie włączono przechowywanie wersji bazy danych.Poniżej przedstawiono listę wartości DBPROP_SUPPORTEDTXNISOLEVELS:

Identyfikator właściwości

Opis

DBPROP_SUPPORTEDTXNISOLEVELS

Typ: VT_I4

R I W: Tylko do odczytu

Opis: Maska bitowa określania poziomów izolacji transakcji obsługiwane.Połączenie zero lub więcej z następujących czynności:

  • 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

Aby wskazać, że został zmieniony zestaw właściwość DBPROPSET_SESSION poziom izolacji migawka jest obsługiwany przez dodanie wartości DBPROPVAL_TI_SNAPSHOT używany we właściwość DBPROP_SESS_AUTOCOMMITISOLEVELS.Nowa wartość ta wskazuje, że poziom izolacji migawka jest obsługiwany czy nie włączono przechowywanie wersji bazy danych.Poniżej przedstawiono listę wartości DBPROP_SESS_AUTOCOMMITISOLEVELS:

Identyfikator właściwości

Opis

DBPROP_SESS_AUTOCOMMITISOLEVELS

Typ: VT_I4

R I W: Tylko do odczytu

Opis: Określa maskę bitową, która wskazuje poziom izolacji zatwierdzanie podczas w trybie automatycznego zatwierdzanie.Wartości, które zestaw w tym maski są takie same, jak te, które zestaw dla DBPROP_SUPPORTEDTXNISOLEVELS.

Ostrzeżenie

Wystąpią błędy, DB_S_ERRORSOCCURRED lub DB_E_ERRORSOCCURRED, jeśli jest DBPROPVAL_TI_SNAPSHOT zestaw podczas korzystania z wersji SQL Server starsze niż SQL Server 2005.

Informacje, jak migawka izolacji jest obsługiwany w transakcjach, zobacz Obsługa transakcji lokalnych.

Sterownik ODBC macierzystym klienta SQL Server

SQL Server Sterownik ODBC macierzystym klienta zapewnia obsługę izolacji migawka mimo ulepszeń wprowadzonych Procedura SQLSetConnectAttr i SQLGetInfo funkcji.

Procedura SQLSetConnectAttr

Procedura SQLSetConnectAttr funkcja obsługuje teraz korzystanie z atrybut SQL_COPT_SS_TXN_ISOLATION.Ustawienie SQL_COPT_SS_TXN_ISOLATION do SQL_TXN_SS_SNAPSHOT wskazuje, że transakcja będzie miała miejsce w poziom izolacji migawka.

SQLGetInfo

SQLGetInfo funkcja obsługuje teraz wartość SQL_TXN_SS_SNAPSHOT, który został dodany do typu info SQL_TXN_ISOLATION_OPTION.

Informacje, jak migawka izolacji jest obsługiwany w transakcjach, zobacz Poziom izolacji transakcji kursora.