Aracılığıyla paylaş


Veritabanı Altyapısı'nda yalıtım düzeyleri

İşlemler için tek bir işlem kaynak veya veri değişiklikleri diğer işlemler tarafından yapılan yalıtılmış olmalıdır derece tanımlayan bir yalıtım düzey belirtin.Yalıtım düzeyleri açısından hangi eşzamanlılık yan etkiler, kirli okuma veya hayalet okuma gibi izin verilen açıklanmıştır.

Hareket yalıtım düzeyi denetimi:

  • Kilitleri alınmış olup olmadığını ne zaman veri okuma ve ne tür bir kilit talep.

  • Ne kadar süreyle okuma kilitleri tutulur.

  • Bir okuma işlemi başvuran olup satırları başka bir işlem tarafından değiştirilmiş:

    • Bkilitkadar özel s kilit satırı serbest bırakılmaz.

    • At vardı satır kaydedilmiş sürüm alır saat deyim veya hareket başladı.

    • Kaydedilmemiş bir veri değişikliği okur.

Seçme bir işlem yalıtım düzey veri değişiklikleri korumak için alınan kilitleri etkilemez.Her zaman hareket değiştirir ve hareket tamamlanıncaya kadar yalıtım düzey ne olursa olsun o kilit tuttuğunda herhangi bir veri üzerinde özel kilit alır küme ilgili.Okuma işlemleri, işlem yalıtımı için düzeys öncelikle tanımlamak düzey diğer işlemler tarafından yapılan değişiklikler etkilerini karşı koruma.

Çok sayıda kullanıcı aynı veri erişim olanağı daha düşük yalıtım düzey artar saat, ama eşzamanlılık efektleri (kirli okuma veya güncelleştirme kaybı gibi) kullanıcı sayısını karşınıza artar.Tam tersine, daha yüksek bir yalıtım düzey eşzamanlılık kullanıcılar karşılaşabilir, ancak daha fazla sistem kaynağı gerektiren ve tek bir hareket olasılığını artırır, etkileri olacak türleri azaltır blok başka.Uygun yalıtım düzey seçme uygulamasının yükünü karşı her yalıtım düzey veri bütünlük gereksinimleriyle Dengeleme üzerinde bağlıdır.Bir işlem aynı veri okuma işlemi yinelenir, ancak bunu bir düzeyde, kilitleme gerçekleştirerek yapar her saat alır en yüksek yalıtım düzey, seri hale getirilebilir, garanti çok kullanıcılı sistemlerde diğer kullanıcıları etkileyen büyük olasılıkla.En düşük yalıtım düzey okuma kaydedilmemiş, değiştirilebilir, ancak diğer işlemler tarafından kabul edilen veri alabilir.Eşzamanlılık yan etkileri tüm read UNCOMMITTED gerçekleşebilir, ancak okuma kilitleme veya yoktur, sürüm oluşturma yükünü inecek şekilde.

Veritabanı Altyapısı yalıtım düzeyleri

ISO standardı tümü tarafından desteklenen aşağıdaki yalıtım düzeyleri tanımlar SQL Server Veritabanı Altyapısı:

  • READ UNCOMMITTED (en düşük düzey , fiziksel olarak emin olmak için yeterli veri bozulmasına neden yalnızca hareketleri yalıtılmış nerede okuma)

  • Kaydedilen okuma (Veritabanı Altyapısı Varsayılan düzey)

  • Yinelenebilir okuma

  • Serializable (burada hareketleri birbirinden tümüyle yalıtılmıştır en yüksek düzey)

Önemli notÖnemli

Seri hale getirilebilir yalıtım düzey istendiğinde ddl işlemleri ve çoğaltılan tablolarda işlemler başarısız olabilir.Bunun nedeni çoğaltma sorguları seri hale getirilebilir yalıtım düzey ile uyumsuz olabilir ipuçlarını kullanın.

SQL Server Ayrıca, satır sürüm oluşturma'yı kullanan iki hareket izolasyon düzeyleri destekler.Yeni bir okuma kaydedilmiş yalıtım uygulaması biridir ve yeni bir ise işlem yalıtım düzey, anlık görüntü görüntü.

  • READ_COMMITTED_SNAPSHOT veritabanı seçeneği olduğunda küme on, kaydedilmiş yalıtım okuma satır sürüm oluşturma deyim düzey okuma tutarlılık sağlamak için kullanır.Okuma işlemleri sch-s tablo düzey kilitleri ve sayfa veya satır kilitleri gerektirir.READ_COMMITTED_SNAPSHOT veritabanı seçeneği olduğunda küme varsayılan olan kapalı kümeting, okuma kaydedilmiş yalıtım davranır'ın önceki sürümlerinde olduğu gibi SQL Server.Her iki okuma kaydedilmiş yalıtım ANSI tanımıdır karşılar.

  • anlık görüntü yalıtım düzey Satır sürüm oluşturma işlem düzey okuma tutarlılık sağlamak için kullanır.Okuma işlemleri, sayfa veya satır kilitleri alın; sch-s tablo kilitleri satın alınır.Başka bir işlem tarafından değiştirilmiş satırları okurken, bunların hareket başladığında, varolan satır sürüm alın.ALLOW_SNAPSHOT_ISOLATION veritabanı seçeneği olduğunda, yalnızca bir veritabanı anlık görüntü yalıtım kullanabilirsiniz küme eder.Varsayılan olarak, bu seçenek kapalı kullanıcı veritabanları için küme.

Not

SQL Server Meta veriler, sürüm oluşturma özelliğini desteklemez.Bu nedenle, içinde hangi ddl işlemleri gerçekleştirilebilir kısıtlamalar vardır bir belirtik işlem anlık görüntü yalıtım altında çalışıyor.BEGIN TRANSACTION deyim sonra anlık görüntü yalıtım altında aşağıdaki ddl deyimleri izin verilmez: alter table, create INDEX, create xml Index, alter INDEX, drop INDEX, dbcc VERİTABANINIZDAN, alter bölüm işlevi, alter bölüm DÜZENİNİ veya hiçbir ortak dil çalışma zamanı (clr) ddl deyim.Bu ifadeler, anlık görüntü yalıtım örtülü hareketleri içinde kullanılırken izin verilir.Zorlamak mümkün kılan tek bir deyim, tanım olarak örtük bir hareket olduğu semantik bile ddl deyimleri ile anlık görüntü yalıtım.Bu ilkeye ihlalleri 3961 hatası neden olabilir: "Anlık görüntüsünü yalıtım hareket veritabanında başarısız oldu ' %. * ls' deyim tarafından erişilen nesnenin başlangıç bu yana aynı anda başka bir işlem bu hareketin bir ddl deyiminde tarafından değiştirildiğinden.Meta veriler sürüm bilgisi olmadığı için izin verilmez.Bir eş zamanlı güncelleştirme meta veriler tutarsızlığına anlık görüntü görüntü yalıtım ile karışık yol açabilir."

Aşağıdaki tablo tarafından farklı yalıtım düzeyleri etkin eşzamanlılık yan etkileri gösterir.

Yalıtım düzey

Kirli okuma

Nonrepeatable okuma

Hayalet

Kaydedilmeyen okuma

Evet

Evet

Evet

Kaydedilen Okuma

Hayır

Evet

Evet

Yinelenebilir okuma

Hayır

Hayır

Evet

Anlık görüntü

Hayır

Hayır

Hayır

Serileştirilebilir

Hayır

Hayır

Hayır

Her tarafından denetlenen kilitleme veya satır sürüm oluşturma belirli türleri hakkında daha fazla bilgi için işlem yalıtım düzey, bkz: HAREKET YALITIM düzeyi (Transact-sql).