Aracılığıyla paylaş


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

Hareketler için bir hareket diğer işlemler tarafından yapılan değişiklikler kaynak ya da veri yalıtılmış olmalıdır derecesini tanımlayan bir yalıtım düzey belirtin.Yalıtım düzeylerinin hangi eşzamanlılık açısından yan-gibi efektler kirli okuma veya okuma hayali izin verilen açıklanmıştır.

Hareket yalıtım düzeylerinin denetimi:

  • Kilitlerin alınır olup olmadığını veriler okunur ve kilitlerin türünü istedi.

  • Ne kadar süreyle okuma kilitlerini tutulur.

  • Olup da okuma işlemi başvuran satırları başka bir işlem tarafından değiştirildi:

    • Satırdaki özel kullanım kilidi serbest kadar engeller.

    • Kaydedilmiş sürüm sırasında varolan satır alır saat deyim veya işlem başlatıldı.

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

Bir işlem yalıtım düzey seçerek, veri değişimlerini korumak için alınan kilitlerin etkilemez.Bir işlemi her zaman özel bir kilit değiştirir ve işlem tamamlanıncaya kadar yalıtım düzey ne olursa olsun, kilit tutan tüm verileri alır. küme ilgili.Okuma işlemleri için hareket izolasyon düzeyleri, öncelikle diğer işlemler tarafından yapılan değişiklikler etkilerini koruma düzeyini tanımlayın.

Yalıtım düzey çok sayıda kullanıcı aynı anda veri erişim yeteneğini artırır, ancak efektleri (örneğin, dirty okuma veya kayıp güncelleştirmeleri) kullanıcıların karşılaşabilir eşzamanlılık sayısını artırır.Tersi durumda, daha yüksek yalıtım düzey kullanıcılar karşılaşabileceğiniz, ancak daha fazla sistem kaynağı gerektiren ve başka bir işlem engeller şansını artırır, eşzamanlılık efektleri türlerini azaltır.Uygun bir yalıtım düzey seçerek, yükü karşı uygulama yalıtım düzeyinin'her veri bütünlüğü gereksinimleriyle dengeleme üzerinde bağlıdır.Bir işlem, bir okuma işlemi yineler, ancak bunun, kilitleme düzey gerçekleştirerek bitini her saat aynı veriyi alır en yüksek yalıtım düzey, seri hale getirilebilir, garanti büyük bir olasılıkla diğer kullanıcıların çok kullanıcılı sistemleri etkiler.En düşük yalıtım düzey kaydedilmemiş, okuma, değiştirilmiş ancak diğer işlemler tarafından kaydedilmiş olan verileri almak.Eşzamanlılık yan etkileri tüm okuma kaydedilmemiş oluşabilir, ancak hiçbir okundu kilitleme veya sürüm oluşturma, bu nedenle, yükü simge durumuna küçültülmüş bulunur.

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

ISO standart tümü tarafından desteklenen aşağıdaki yalıtım düzeyi tanımlar SQL Server Database Engine:

  • Kaydedilmeyen okuma (yeterli fiziksel olarak bu emin olmak için veri bozulmasına neden yalnızca hareketleri yalıtılmış en düşük düzey değil okunur)

  • Taahhüt edilen (okunamıyor.Database Engine Varsayılan düzey)

  • Yinelenebilir okuma

  • Serializable (hareketleri birbirinden tamamen ayrılmış olduğu en yüksek düzey)

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

  • Ne zaman READ_COMMITTED_SNAPSHOT veritabanı seçeneği küme ON kaydedilmiş yalıtım okunamıyor, satır sürüm Düzey Ekstresi tutarlılık okuma sağlamak için kullanır.Okuma işlemleri, yalnızca SCH-S Tablo düzey kilitler ve hiçbir sayfa veya satıra kilit gerektirir.READ_COMMITTED_SNAPSHOT veritabanı seçeneği küme KAPALı olduğunda, önceki sürümlerinde olduğu gibi varsayılan küme kaydedilmiş yalıtım okuma ting, olduğu davranır SQL Server. Her iki uygulamaları okundu kaydedilmiş yalıtım ANSI tanımını karşılar.

  • Anlık görüntü yalıtım düzey satır sürüm işlem düzeyinde tutarlılık okuma sağlamak için kullanır.Okuma işlemleri hiçbir sayfa veya satıra kilit almak, alınan SCH-S tablo kilidi.Başka bir hareket tarafından değiştirilen satırları okurken, bunlar işlem başlatıldığında, satır sürüm alın.ALLOW_SNAPSHOT_ISOLATION veritabanı seçeneği ON olarak ayarlandığında, anlık görüntü yalıtım etkinleştirilir.Varsayılan olarak, bu seçenek, user veritabanlarındaki için KAPALı olarak küme.

Not

SQL Server meta veriler, sürüm oluşturma özelliğini desteklemez.Bu nedenle, hangi DDL) işlemlerini anlık görüntü görüntü yalıtım altında çalışan bir belirtik işlem içinde gerçekleştirilen kısıtlamaları vardır.DDL aþaðýdaki bir BEGIN TRANSACTION deyim sonra anlık görüntü yalıtım altında izin verilmez: ALTER tablo, CREATE INDEX, CREATE XML INDEX, ALTER INDEX, DROP INDEX, DBCC ANDA, ALTER PARTITION işlev, ALTER PARTITION DÜZENINI veya tüm ortak dil çalışma zamanı (CLR) DDL deyim. Kapalı işlemler içinde anlık görüntü görüntü yalıtım kullanırken bu ifadeler izin verilir.Tanımı tarafından örtülü bir hareketi DDL ifadelerle bile, anlık görüntü yalıtım semantik zorlamanıza olanak sağlayan tek bir ifadedir.Bu ilkesi ihlalleri hata 3961 neden olabilir: "Veritabanı içinde başarısız oldu, yalıtım hareket anlık görüntü görüntü görüntüsünü ' %. * nesne deyim tarafından erişilen çünkü ls başlangıç itibaren aynı anda başka bir işlem bu işlemin DDL deyim tarafından değiştirildi.Meta veriler sürüm bilgisi olduğundan buna izin verilmez.Bir eş zamanlı güncelleştirme meta veriler tutarsızlığına anlık görüntü görüntü yalıtım karma, yol açabilir."

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

Yalıtım düzey

kirli okuma

yinelenemeyen 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 işlem yalıtım düzey tarafından denetlenen kilitleme veya satır sürüm belirli türleri hakkında daha fazla bilgi için bkz: işlem yalıtım düzey (Transact-SQL) küme.