Aracılığıyla paylaş


Hareket yalıtım düzeyini özelleştirme

READ COMMITTED is the default isolation level for the Microsoft SQL Server Veritabanı Altyapısı.Bir uygulamayı farklı yalıtım düzeynde çalışmalıdır, için aşağıdaki yöntemleri kullanabilirsiniz küme yalıtım düzey:

  • Çalıştır set hareket YALITIM DÜZEYİNE deyim.

  • ADO.net kullanan uygulamalar System.Data.SqlClient yönetilen ad belirtebilirsiniz bir IsolationLevel seçeneğini kullanarak SqlConnection.BeginTransaction yöntem.

  • ado kullanan uygulamalar için küme Autocommit Isolation Levels özellik.

  • Bir hareketi başlatmak için ole db kullanarak uygulamaların çağırabilecekleri ITransactionLocal::StartTransaction ile isoLevel istediğiniz ayarlayın işlem yalıtım düzey.Yalıtım düzeyne otomatik yürütme modu belirtirken, ole db kullanan uygulamalar DBPROPSET_SESSION özelliğini DBPROP_SESS_AUTOCOMMITISOLEVELS istenen ayarlayabilirsiniz işlem yalıtım düzey.

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

Hareket izolasyon düzeyleri ayarlama hakkında daha fazla bilgi için bkz: Hareket izolasyon düzeyleri ayarlama.

Yalıtım düzey ne zaman belirtilmemişse, tüm sorgular için kilitleme davranışı ve veri işleme dili (dml) deyimi içinde SQL Server oturum çalışır, yalıtım düzey.Yalıtım düzey geçerli oturum sonlandırır yalıtım düzey kadar orada kalır küme başka bir düzeyde.

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

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

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

The Veritabanı Altyapısı might have to acquire locks when reading metadata even when the isolation level is set to a level where share locks are not requested when reading data.Örneğin, okuma-teslim edilmeyen çalışan bir işlem yalıtım düzey paylaşım kilitleri verileri okurken, ancak görebileceği bir sistem kataloğunu okurken sometime isteği kilitleri alın.Yani, bu tablonun meta veriler eşzamanlı hareketi değiştirirken bir tablo sorgularken engelleme neden bir okuma UNCOMMITTED hareket için mümkündür.

Belirlemek için işlem yalıtım düzey şu anda küme, kullanın DBCC USEROPTIONS deyim olarak gösterilen aşağıdaki örnek.Sonuç küme, sonuç kümesinde sizin sisteminizde farklı olabilir.

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

Sonuç kümesi buradadır.

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.