Dostosowanie poziomu izolacji transakcji

READ COMMITTED is the default isolation level for the Microsoft Aparat baz danych programu SQL Server.Jeśli aplikacja musi działać na poziomie różnych izolacji, można użyć następujących metod do zestaw poziom izolacji:

  • Uruchom Ustaw poziom izolacji transakcji instrukcja.

  • ADO.NET aplikacje używające System.Data.SqlClient można określić obszar nazw zarządzanych IsolationLevel opcji za pomocą SqlConnection.BeginTransaction metoda.

  • Aplikacje używające obiektów ADO zestaw Autocommit Isolation Levels właściwość.

  • Podczas uruchamiania transakcji, aplikacje przy użyciu OLE DB można wywołać ITransactionLocal::StartTransaction z isoLevel Ustaw żądane poziom izolacji transakcji.Określając poziom izolacji tryb autozatwierdzania wynosi aplikacje korzystające z OLE DB zestaw właściwość DBPROPSET_SESSION DBPROP_SESS_AUTOCOMMITISOLEVELS poziom izolacji transakcji pożądane.

  • Aplikacje używające ODBC zestaw atrybut SQL_COPT_SS_TXN_ISOLATION za pomocą SQLSetConnectAttr.

Aby uzyskać więcej informacji na temat ustawiania poziomów izolacji transakcji, zobacz Dopasowywanie poziomów izolacji transakcji.

Gdy określono poziom izolacji, zachowanie blokowania dla wszystkich kwerend i język edycji danych (DML) instrukcji w SQL Server sesja działa w tym poziom izolacji.Poziom izolacji pozostają w mocy aż do zakończenia sesja lub poziom izolacji jest zestaw do innego poziomu.

Następujące zestawy przykład SERIALIZABLE poziom izolacji:

USE AdventureWorks2008R2;
GO
SET TRANSACTION ISOLATION LEVEL SERIALIZABLE;
GO
BEGIN TRANSACTION;
SELECT BusinessEntityID
    FROM HumanResources.Employee;
GO

Poziom izolacji można zastąpić dla poszczególnych kwerendy lub DML sprawozdań, jeśli to konieczne, określając wskazówkę na poziomie tabela.Określanie wskazówkę dotyczącą poziom tabela nie narusza innych sprawozdań w sesja.Zaleca się, aby użyć wskazówki do poziom tabela do zmiany domyślne zachowanie tylko wtedy, gdy jest to absolutnie konieczne.

Aparat baz danych Może być uzyskanie blokady podczas odczytywania metadane, nawet jeśli poziom izolacji jest zestaw do poziomu, gdzie udział blokady nie są wymagane podczas odczytywania danych.Na przykład w odczytu niezatwierdzone transakcji poziom izolacji nie nabywa udział blokad podczas odczytywania danych, ale może wyświetlać niekiedy także żądania blokady podczas odczytywania katalogu systemu.Oznacza to możliwość odczytu nieprzydzielonych transakcji spowodować zablokowanie podczas badania tabela, modyfikując jednoczesnych transakcji jest metadane w tej tabela.

Aby ustalić poziom izolacji transakcji obecnie zestaw, użyj DBCC USEROPTIONS instrukcja, jak pokazano w następującym przykładzie.Zestaw wyników może różnić się od wyników w systemie.

USE AdventureWorks2008R2;
GO
SET TRANSACTION ISOLATION LEVEL REPEATABLE READ;
GO
DBCC USEROPTIONS;
GO

Oto zestaw wyników.

Set Option Value

---------------------------- -------------------------------------------

textsize 2147483647

language us_english

dateformat mdy

datefirst 7

... ...

Isolation level repeatable read

(14 row(s) affected)

DBCC execution completed. If DBCC printed error messages, contact your system administrator.