Aracılığıyla paylaş


Eşzamanlılık efektleri

Veri değiştirme, kullanıcıların diğer kullanıcıların okuma ya da aynı verileri aynı anda değiştirme etkileyebilir saat.Bu kullanıcıların, verileri aynı anda erişmek söylenir.Bir veri saklama sistemi eşzamanlılık denetleyemez, kullanıcılar aşağıdaki yan etkileri bakın:

  • Kayıp güncelleştirmeleri

  • Kaydedilmemiş bağımlılığı (kirli okuma)

  • Tutarsız çözümlemesi (yinelenemeyen okuma)

  • Hayalet okur.

  • Satır güncelleştirmeler tarafından neden eksik ve çift okuma

Kayıp güncelleştirmeleri

Iki veya daha fazla hareketleri aynı satırı seçin ve sonra ilk seçili değeri temelinde satır güncelleştirme kayıp güncelleştirmeleri oluşur.Her diğer hareketlerini farkında hareketidir.Son güncelleştirme, güncelleştirmelerin diğer hareketler, kayıp verileri sonuçlar üzerine yazar.

Örneğin, iki düzenleyiciler aynı belgenin elektronik bir kopyasını yapın.Her kopya bağımsız olarak değiştirir ve sonra da böylece özgün belge üzerine değiştirilen bir kopyasını kaydeder.Değiştirilen kopya kaydeden Düzenleyicisi son diğer düzenleyici tarafından yapılan değişikliklerin üzerine yazar.Bu sorun diğer Düzenleyici bitirdi ve hareketin tamamlandığı kadar bir düzenleyici dosya erişilemedi, kaçınılması.

Kaydedilmemiş bağımlılığı (kirli okuma)

Ikinci bir işlemin başka bir hareket tarafından güncelleştirilen bir satırı seçtiğinde kaydedilmemiş bağımlılık oluşur.Ikinci işlem henüz tamamlanmış edilmemiştir ve satır güncelleştirme hareket tarafından değiştirilen veriler okunuyor.

Örneğin, bir düzenleyici, elektronik bir belgeye değişiklikleri yapıyor.Ikinci bir düzenleyici sırasında değişiklikleri, şu ana kadar yaptığınız tüm değişiklikleri içeren belgenin bir kopyasını alır ve belgeye amaçlanan kişi programını dağıtmaktadır..Ilk Düzenleyicisi, şu ana kadar yaptığınız değişiklikleri yanlış düzenlemeleri kaldırır ve belgeyi kaydeder sonra belirler.Dağıtılmış belge artık var ve bunlar hiçbir zaman gibi varsa bu güvenlik açığından değerlendirilmelidir düzenlemelerini içerir.Bu sorun ilk son kaydetme değişiklikler yapar ve hareketi tamamlar kadar hiç kimse değiştirilen belgeyi okuyabilir, kaçınılması.

Tutarsız çözümlemesi (yinelenemeyen okuma)

Ikinci bir işlem aynı satırda birkaç kez erişir ve her saat farklı verileri okur tutarsız çözümlemesi gerçekleşir.Ikinci bir hareket okuma verileri başka bir işlem değiştirilirken tutarsız çözümlemesi kaydedilmemiş bağımlılığı benzer.Ancak tutarsız çözümlemesinde, ikinci bir işlem tarafından okunan veri değişikliği yapan tarafından hareketin tamamlandığı.Ayrıca, tutarsız çözümlemesi aynı satırın birden çok okuma (iki veya daha çok) içerir ve her saat bilgileri başka bir işlem tarafından değiştirildi; böylece nonrepeatable terimi okunamıyor.

Örneğin, bir düzenleyici aynı belgenin iki kez okur, ancak arasındaki her okuma, yazıcı belgeyi yeniden yazar.Düzenleyici belgenin saniye okur, saat, onu değiştirdi.Özgün okuma yinelenebilir değildi.Düzenleyici, onu son kez okuma bitinceye kadar yazıcı belgeyi değişebilir, bu sorun kaçınılması.

Hayali okuma

Bir işlem tarafından okunan satır aralık ait olduğu satır karşı bir ekleme veya silme işlemi gerçekleştirildiğinde, hayali okuma oluşur.Hareketin satır aralığının ilk okuma, ikinci ya da farklı bir işlem tarafından okunur silme işlemi sonucunda izleyen artık varolmayan bir satır gösterir.Benzer şekilde, hareketin saniye veya okuma izleyen özgün okuma ekleme sonucu olarak, farklı bir işlem tarafından bulunmayan bir satır gösterir.

Örneğin, bir düzenleyici bir yazıcı tarafından gönderilen bir belgede değişiklik yapar, ancak değişiklikleri üretim departmanı ile bir ana kopyasının belgenin eklenen, bunlar yeni düzenlenmemiş malzeme için belge yazarı tarafından eklenmiş olduğunu bulmak.Düzenleyici ve üretim departmanı bitiş kadar özgün belgeyle birlikte çalışma hiç kimse yeni malzeme belgeye ekleyebilirsiniz, benzer yinelenemeyen okuma durum için bu sorun kaçınılması.

Satır güncelleştirmeler tarafından neden eksik ve çift okuma

  • Güncelleştirilmiş bir satır eksik ya da birden çok kez güncelleştirilmiş bir satırda görme

    READ UNCOMMITTED sırasında çalıştırılan işlemleri düzey diğer hareketler arasında geçerli bir işlem tarafından okunan veri değiştirme önlemek için paylaşılan kilitlerin sorun.Paylaşılan kilitlerin çıkış OKUMA KAYDEDILMIŞ düzeyinde çalışan hareketlerini, ancak satırını okuduktan sonra satır veya sayfa kilitlerin serbest bırakılır.Başka bir kullanıcı, okuma sırasında satırın dizin anahtar sütun değişirse, dizin Taramakta olduğunuz, anahtar değişimi satır taramanız önünde bir konuma taşıdıysanız her iki durumda da, satır yeniden görünebilir.Benzer şekilde, anahtar değişimi satır zaten okunamıyor bir dizin içinde bir konuma taşıdıysanız satır görünmeyebilir.Bunu önlemek için , SERIALIZABLE veya HOLDLOCK ipucu ya da satır sürüm oluşturma'yı kullanın.Daha fazla bilgi için bkz: Tablo ipuçları (Transact-SQL) ve Satır Veritabanı Altyapısı'ndaki Sürüm tabanlı yalıtım düzeyleri.

  • Güncelleştirme işleminin hedefi olan bir veya daha çok satır eksik.

    Sorgunuz için satırlar (IAM sayfaları kullanarak) bir tahsisat sipariş tarama yazıyorsa, READ UNCOMMITTED kullanırken, başka bir işlem sayfa bölme neden olup olmadığını satır kaçırabilirsiniz.Bir tablo kilit sayfa bölme sırasında tutulur ve tablo, kümelenmiş dizin yoksa, güncelleştirmeler sayfasında bölmelerini neden olduğundan ortaya değil çünkü kaydedilmiş okuma kullanırken oluşamaz.