Aracılığıyla paylaş


işlem yalıtım düzey özelleştirme

READ COMMITTED is the default isolation level for the Microsoft SQL Server Database Engine.Uygulama bir farklı yalıtım düzeynde çalışan gerekir, için aşağıdaki yöntemleri kullanabilirsiniz küme yalıtım düzey:

  • Çalıştırma küme HAREKET YALITIM DÜZEYİNE ekstresi.

  • ADO.NET kullanan uygulamalar System.Data.SqlClient yönetilen bir ad belirtebilirsiniz bir Isolationlevel kullanarak seçeneğiSqlConnection.BeginTransaction yöntem.

  • ADO kullanan uygulamalar ayarlayabilirsiniz Autocommit yalıtım düzeyleri özellik.

  • Bir işlem başlatılırken, OLE DB kullanarak uygulamaları çağırabilir ITransactionLocal::StartTransaction With isoLevel küme istediğiniz işlem yalıtım düzey.Yalıtım düzey autocommit modunda belirtirken, OLE DB kullanan uygulamalar için küme istediğiniz işlem yalıtım düzey DBPROP_SESS_AUTOCOMMITISOLEVELS DBPROPküme_SESSION özellik.

  • ODBC kullanan uygulamalar için küme kullanarak SQL_COPT_SS_TXN_ISOLATION özniteliği SQLSetConnectAttr.

Hareket izolasyon düzeyleri ayarlama hakkında daha fazla bilgi için bkz: Işlem yalıtım düzeyleri ayarlama.

Yalıtım düzey, belirtilen, tüm sorguları ve veri işleme dili (DML) deyimlerinde kilitleme davranışını SQL Server oturum, yalıtım düzeyinde çalışır. Yalıtım düzey, oturum sona erdirir kadar veya başka bir düzeye küme yalıtım düzeyine kadar etkin kalır.

Aşağıdaki örnek ayarlar SERIALIZABLE yalıtım düzey:

USE AdventureWorks
GO
SET TRANSACTION ISOLATION LEVEL SERIALIZABLE;
GO
BEGIN TRANSACTION;
SELECT EmployeeID
    FROM HumanResources.Employee;
GO

Yalıtım düzey ayrı bir sorgu veya DML deyimlerini için gerekiyorsa, bir tablo düzey ipucu belirterek kılınabilir.Bir tablo düzey ipucu belirtme diğer ifadeleri oturumda etkilemez.Tablo düzey ipuçları yalnızca kesinlikle gerekli olduğunda varsayılan davranışı değiştirmek için kullanılması önerilir.

The Database Engine might have to acquire locks when reading meta veriler even when the yalıtım düzey is küme to a düzey where share locks are not requested when reading data. Örneğin, okuma kaydedilmemiş yalıtım düzeyinde çalışan bir işlem paylaşım kilitleri verileri okunurken Sunucusu'ndan değil, ancak görüntüleyebileceği bir Sistem kataloğu okunurken sometime isteği kilitler.Bu, eşzamanlı bir işlem meta veriler bu tablonun değiştirirken, bir tablo sorgularken engelleme neden bir okuma kaydedilmemiş hareket olanaklıdır anlamına gelir.

işlem yalıtım düzey küme belirlemek için , DBCC USEROPTIONS Aşağıdaki örnekte gösterildiği gibi ekstresi. Sisteminizde ayarlamak sonuç sonuç kümesi farklı olabilir.

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

Here is the result set.

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.