Udostępnij za pośrednictwem


Adjusting Transaction Isolation Levels

Właściwość izolacji jest jednym z czterech właściwości, niepodzielność, spójność, izolacja i logiczna jednostka pracy musi być wyświetlane w celu zakwalifikowania jako transakcja trwałości (ACID).Istnieje możliwość zabezpieczyć transakcji przed skutkami aktualizacje wprowadzone przez innych jednoczesnych transakcji.Poziom izolacji jest faktycznie można dostosowywać dla każdej transakcji.

The SQL Server Database Engine supports the transaction isolation levels defined in SQL-92.Ustawianie poziomów izolacji transakcji umożliwia programistom handlu poza zwiększone ryzyko integralność, niektóre problemy z obsługuje więcej równoczesnych dostępu do danych.Poziomów izolacji transakcji są następujące:

  • PRZECZYTAJ NIEZAKOŃCZONE

  • PRZECZYTAJ ZADEKLAROWANEJ

  • ODCZYT POWTARZALNY

  • migawka

  • MOŻLIWY DO SERIALIZACJI

Z dwoma wyjątkami każdy poziom izolacji oferuje izolacji więcej niż poprzedniego poziomu przytrzymując bardziej restrykcyjne blokady przez dłuższy czas.Wyjątkami są migawka i odczytu POPEŁNIONYCH podczas READ_COMMITTED_SNAPSHOT jest włączone zestaw.Te poziomy izolacji nie nabyć udostępnionego blokad dla wierszy danych podczas operacji odczytu.Tylko SCH-S blokady są przechowywane poziom tabela.

Poziomów izolacji transakcji może być zestaw przy użyciu Transact-SQL lub za pośrednictwem interfejsu API bazy danych.

  • Transact-SQL
    Transact-SQL skrypty za pomocą instrukcja zestaw poziom izolacji TRANSACTION.

  • ADO
    Aplikacje ADO zestaw IsolationLevel Właściwość Połączenia obiekt adXactReadUncommitted, adXactReadCommitted, adXactRepeatableRead lub adXactReadSerializable.

  • ADO.NET
    Za pomocą aplikacji ADO.NET System.Data.SqlClient zarządzania obszarem nazw może wywołać SqlConnection.BeginTransaction metoda i zestaw IsolationLevel opcję Nieokreślony, Chaos, ReadUncommitted, ReadCommitted, RepeatableRead, Serializable i zdjęcie.

  • OLE DB
    Po rozpoczęciu transakcji, wywoływać aplikacje korzystające z OLE DB ITransactionLocal::StartTransaction with isoLevel zestaw ISOLATIONLEVEL_READUNCOMMITTED, ISOLATIONLEVEL_READCOMMITTED, ISOLATIONLEVEL_REPEATABLEREAD, ISOLATIONLEVEL_SNAPSHOT lub ISOLATIONLEVEL_SERIALIZABLE.

    Podczas określania poziom izolacji transakcji tryb automatycznego zatwierdzania, OLE DB aplikacje mogą ustawiać właściwość DBPROPSET_SESSION DBPROP_SESS_AUTOCOMMITISOLEVELS DBPROPVAL_TI_CHAOS, DBPROPVAL_TI_READUNCOMMITTED, DBPROPVAL_TI_BROWSE, DBPROPVAL_TI_CURSORSTABILITY, DBPROPVAL_TI_READCOMMITTED, DBPROPVAL_TI_REPEATABLEREAD, DBPROPVAL_TI_SERIALIZABLE, DBPROPVAL_TI_ISOLATED lub DBPROPVAL_TI_SNAPSHOT.

  • ODBC
    Wywołanie aplikacji ODBC SQLzestawConnectAttr with Attribute zestaw do SQL_ATTR_TXN_ISOLATION i ValuePtr zestaw SQL_TXN_READ_UNCOMMITTED, SQL_TXN_READ_COMMITTED, SQL_TXN_REPEATABLE_READ lub SQL_TXN_SERIALIZABLE.

    W przypadku transakcji migawka aplikacje wywołują SQLzestawConnectAttr z atrybut zestaw SQL_COPT_SS_TXN_ISOLATION i ValuePtr zestaw do SQL_TXN_SS_SNAPSHOT.Transakcja migawka mogą być pobierane za pomocą SQL_COPT_SS_TXN_ISOLATION lub SQL_ATTR_TXN_ISOLATION.