Satır Güncelleştirme tabanlı yalıtım düzeyleri seçme
Row versioning-based isolation levels improve read concurrency by eliminating locks for read operations.Microsoft SQL Server introduces two transaction isolation levels that use row versioning:
Yeni bir satır sürümü kullanan READ_COMMITTED_SNAPSHOT veritabanı seçeneği açık olduğunda okuma kabul edilen yalıtım uygulaması.
ALLOW_SNAPSHOT_ISOLATION veritabanı seçeneği açık olduğunda, etkin anlık görüntü görüntü görüntüsünü, yeni bir yalıtım düzey.
Çoğu uygulamalar için kabul edilen yalıtım okuma satır sürümü kullanarak önerilir anlık görüntü görüntü yalıtım aşağıdaki nedenlerle:
Tüketir daha aztempdb anlık görüntü yalıtım. alanı
Anlık görüntü yalıtımı sağlamaz, ancak dağıtılmış hareketleri ile çalışır.
Varolan uygulamaların çoğu ile herhangi bir değişiklik gerektirmeden çalışır.Okuma varsayılan yalıtım düzey kullanılarak yazılmış uygulamaları gösterir, dinamik olarak ayarlanan.Davranışı okuma ya da değil, satır sürümü kullanmak için veritabanı seçeneği ayarıyla belirlenir ve bu uygulamanın etkilemeden değiştirilebilir olup olmadığını gösterir.
Not
Okuma kabul edilen yalıtım engelleme davranışı üzerinde bağımlı tasarlanan uygulamalar için geliştiricilerin her iki okuma kabul edilen yalıtım modu ile çalışmak için uygulamayı değiştirmek isteyebilirsiniz.Aksi halde, READ_COMMITTED_SNAPSHOT veritabanı seçeneğini OFF kaldığına dikkat edin önemlidir.
Anlık görüntü yalıtım satır sürümü kullanılarak kaydedilmiş yalıtım okumak için uygun olmayan güncelleştirme çakışması etkilenir.anlık görüntü yalıtım altında çalışan bir işlemi daha sonra başka bir hareket tarafından değiştirilen verileri okur, bir güncelleştirme aynı verilere anında harekete neden olan bir güncelleştirme çakışması ve işlemi sonlandırır ve geri alır.Bu satır sürümü kullanarak okuma kaydedilmiş ayırma ile ilgili bir sorun değildir.
Okuma kullanmak, satır güncelleştirme kullanarak ayırma sayısı
Satır sürümü kullanarak okuma kabul edilen yalıtım sağlar deyim-düzey tutarlılık okuyun.Her deyim içinde hareket yapar gibi yeni bir veri anlık görüntü alınır ve deyimi yürütme bitene kadar her tablo için tutarlı kalır.Etkin Satır sürümü kullanılarak kaydedilmiş yalıtım okuma sırasında:
Okuyucu/Yazıcı engelleme noktasına oluşur, eşzamanlılık yararları outweigh oluşturma ve yönetme satır sürümleri yükünü daha fazla.
Bir uygulama, uzun süren toplamlar veya sorguları burada veri değerleri başlayan bir sorgu saat noktasına tutarlı olmalıdır mutlak doğruluk gerektirir.
anlık görüntü yalıtım kullanılacağı durumlar
İşlem düzeyinde tutarlılık okuma anlık görüntü görüntü yalıtım sağlar.Anlık görüntü hareket başladığında, veri anlık alınır ve işlem süresi için tutarlı kalır.Anlık görüntü yalıtım kullanın:
İyimser eşzamanlılık denetimi gerekli.
Bir güncelleştirme çakışması nedeniyle geri alınması bir işlem yoktur olasılığı düşüktür.
saat içinde alınmı tutarlılık, uzun süren, multi-deyim sorguları temel alan raporlar için bir uygulama gerekir.anlık görüntü yalıtım yinelenebilir okuma yararı sağlar (bkz: Eşzamanlılık efektleri) kullanmadan paylaşılan kilitler.veritabanı anlık görüntü görüntü görüntü görüntüsü benzer işlev sağlayabilir, ancak el ile uygulanması gerekir.Anlık görüntü ayırma veritabanında her anında ayırma işlemi için en son bilgileri otomatik olarak sağlar.
Satır güncelleştirme tabanlı yalıtım düzeyleri yararları
Satır sürümü kullanan izolasyon düzeyleri, aşağıdaki yararları sağlar:
Okuma işlemleri, veritabanı tutarlı anlık görüntü görüntü görüntüsünü alın.
SELECT deyimi değil kilit veri okuma işlemi sırasında (okuyucuları değil engellemek yazıcıları, bunun tam tersi).
Diğer hareketleri engellenmiş olmadan satır güncelleştirdiğiniz sırada SELECT deyimi, satırın son kabul edilen değer erişebilirsiniz.
Kilitlenme sayısı azalır.
Yükü kilitleri yönetmek için gereken sistem azaltır; bir işlem tarafından gereken kilit sayısı azalır.
Daha az kilit escalations gerçekleşir.
Satır güncelleştirme tabanlı yalıtım düzeyleri maliyetleri
Satır sürümü göre yalıtım kullanmaya karar eşzamanlılık yararı korumak ve satır sürümleri okumak için gereken daha fazla kaynak kullanımına karşı kilitleme en ağır gerektirir.Satır sürümü anlık görüntü görüntü ve okuma kaydedilmiş izolasyon düzeyleri için etkinleştirme ile ilgili aşağıdaki maliyetler göz önünde bulundurun:
Sürümleri sorgular tarafından zincirleri taranan eski ve uzun sürüm olduğunda, okuma performansı etkilenebilir.
Satır sürümü oluşturma sırasında veri değişikliği satır sürümleri korunur gibi kaynak kullanımı artartempdb.
Bir satır sürümü göre yalıtım düzey kullanarak hareket olsa bile, Seçenekler şunlardır: ON, READ_COMMITTED_SNAPSHOT veya ALLOW_SNAPSHOT_ISOLATION veritabanı güncelleştirme ve silme işlemleri belirli bir veritabanı için satır sürümleri tutmalıdır.Satır sürümleri kullanarak verileri tutarlı anlık görüntü görüntü görüntüsünü oluşturarak sistem kaynaklarını (CPU ve bellek) içerir ve büyük olasılıkla g/Ç etkinliği oluşturur.Çünkü kayıt sürümleri depolanırtempdb, performansı daha iyi ve daha fazla sayfa tempdb satır sürümü. için bellekte saklanan, verilen g/Ç sayısı alt
Not
Genellikle bir satır ekleme satırı sürüm oluşturmaz.Belirli koşullar altında bir satır sürüm Ekle komutu oluşturur ancak.Örneğin, eklediğiniz, daha önce silinmiş bir sürüm olduğunda (hayalet kayıt) benzersiz bir dizini olan bir tabloya bir satır kesilmiş, INSERT komut satırı sürümünü üretir.
tempdb sürüm deposu. için yeterli disk alanı olmalıdır. Tüm sürümleri, çok uzun süren hareketler, oluşturulan güncelleştirme işlemleri sırasında saat gerekir saklanırtempdb.Iftempdb alanı çalışır, işlemler başarısız, ancak okuma işlemlerini satır sürümü kullanarak güncelleştirme başarısız. olabilir
Satır sürüm bilgileri 14 veritabanı satırı için eklenen bayt gerektirir.
Güncelleştirme performansını satır sürümleri koruma iş yüzünden daha yavaş olabilir.Normal OLTP İş yükleri veritabanında yalnızca birkaç satır her güncelleştirme değiştirir.Bu sistemleri, performans seçenekleri açık olduğu bir veritabanında güncelleştirmeleri veritabanlarına her iki seçeneği ile karşılaştırıldığında yalnızca birkaç yüzde noktaları daha yavaş olabilir.Güncelleştirme işlemleri sırasında daha büyük miktarda veriyi değiştirdiğinizde, sürüm bilgisi güncelleştirmeleri performans maliyeti yüksek olabilir.
Veri okuyucuları yüz sürüm bağlantı listesi geçme ek maliyet.Eski anlık görüntü, bir anlık görüntü yalıtım işleme erişmek yavaş işlem.
Bazı güncelleştirme işlemlerini anında yalıtım kullanarak güncelleştirme işlemleri için zorunlu çakışma algılama nedeniyle geri alınması gerekebilir.Satır sürümü kullanarak okuma kabul edilen yalıtım altında çalışan hareketleri güncelleştirme çakışması oluşturmaz.
Hareketlerini satır sürümü kullanarak başka sınırlamalar vardır.Daha fazla bilgi için bkz:Satır Güncelleştirme tabanlı yalıtım düzeyleri kullanma.
Satır güncelleştirme tabanlı yalıtım düzeyleri Yararlanabileceklerini sistemleri
Satır sürümü göre yalıtım düzeylerinden yararlanabilmenizi senaryoları şunları içerir:
Sistemler, salt okunur raporları ve anlık sorgu paralel bir uygulama veri güncelleştirme ile çalışır.
Application migration to the Microsoft SQL Server Database Engine from other relational database systems supporting similar isolation levels.
Hangi tutarlı toplam, ortalama, Say ve Topla alma veya dizin kesişme noktalarında ve dizin birleşimleri, gerektiren bir katı yalıtım düzey (örneğin yinelenebilir okuma veya seri hale getirilebilir) sistemleri.
Bir kilitlenme nedeniyle yüksek sayıda sistem okuma/yazma çakışması.
See Also