Aracılığıyla paylaş


Eşzamanlılık efektleri

Kullanıcılar verileri değiştirme, okuma veya değiştirme aynı veriyi aynı anda diğer kullanıcılar etkileyebilir saat.Bu kullanıcılar, verileri aynı anda erişiyor söylenir.Eşzamanlılık denetimi bir veri depolama sistemi yoktur, kullanıcılar aşağıdaki yan etkileri hallerini görebilirsiniz:

  • Kayıp güncelleştirmeleri

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

  • Tutarsız analysis (yinelenemeyen okuma)

  • Hayalet okur

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

Kayıp güncelleştirmeleri

İki veya daha fazla hareket aynı satırı seçin ve sonra orijinal olarak seçilen değeri temelinde satır güncelleştirme güncelleştirme kaybı oluşur.Her işlem, diğer hareketlerini haberi yoktur.Son güncelleştirme diğer işlemleri yapılan güncelleştirmeleri geçersiz kılar, sonuçlar , kayıp verileri.

Örneğin, iki Düzenleyicileri aynı belgenin elektronik bir kopyasını oluşturun.Her düzenleyici kopya bağımsız olarak değiştirir ve böylece orijinal belgenin üzerine yazmadan değiştirilen kopyayı kaydeder.Değiştirilmiş kopyasına kaydeden düzenleyen son bir Düzenleyicisi tarafından yapılan değişikliklerin üzerine yazar.Bu sorun diğer Düzenleyici bitirdi ve hareketin tamamlandığı kadar bir düzenleyici dosyasına erişilemedi, kaçınılması.

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

İkinci bir hareket başka bir hareket tarafından güncelleştirilen satır seçtiğinde kaydedilmemiş bağımlılık oluşur.İkinci hareket henüz uygulanmamış olan ve satır güncelleştirme hareket tarafından değiştirilen verileri okuyor.

Örneğin, bir düzenleyici elektronik bir belge değişikliklerini gerçekleştiriyor.Değişiklikler sırasında ikinci bir düzenleyici için şimdiye kadar yapılan tüm değişiklikleri içeren belgenin bir kopyasını alır ve hedef kitle için belge dağıtır.İlk düzenleyen sonra şu ana kadar yapılan değişiklikler yanlış ve düzenlemeleri ortadan kaldırır ve belgeyi kaydeder karar verir.Dağıtılmış belge artık yok ve hiçbir zaman vardı gibi değerlendirilmelidir düzenlemeleri içeriyor.Bu sorun ilk düzenleyen son kaydetme değişiklikler yapar ve hareketi onayladığını kadar hiç kimse değiştirilen belgeyi okuyabilir, kaçınılması.

Tutarsız Analysis (Nonrepeatable okuma)

İkinci işlem birkaç kez aynı satırda erişen her saat farklı verileri okur tutarsız analiz oluşur.Başka bir işlem ikinci bir hareket okuma veri değiştirilirken tutarsız analiz için kaydedilmemiş bağımlılık benzer.Ancak, tutarsız analiz, ikinci hareket tarafından okunan veri değişikliği yapan hareketin tamamlanmış.Ayrıca, aynı satır birden fazla okuma (iki veya daha fazla) tutarsız analiz içerir ve her saat başka bir işlem tarafından bilgiler değiştirildiğinde; Bu nedenle, terim yinelenemeyen okuma.

Örneğin, aynı belgeyi düzenleyen iki kez okur, ancak belgeyi yazan her okuma arasında yeniden yazar.Ne zaman düzenleyen okur belge için ikinci saat, bunu değişti.Özgün okuma yinelenebilir.Bu sorun Düzenleyicisi için son okuma işlemini tamamlayana kadar belgeyi yazan değiştiremedi, önlenmesini saat.

Hayalet okur

Hayalet okuma, INSERT veya delete eylem ait olduğu satır karşı yapıldığında ortaya bir aralık bir işlem tarafından okunan satır.Öncelikle, okunur hareket aralık ikinci veya başka bir işlem tarafından okunur bir sonucu olarak silme işlemi izleyen artık bir satır satır gösterir.Benzer şekilde, hareketin ikinci veya okuma izleyen özgün okuma ekleme sonucu olarak farklı bir işlem tarafından yok bir satır gösterir.

Örneğin, bir düzenleyici Yazan tarafından gönderilen bir belgede değişiklik yapar, ancak üretim birimince değişiklikleri ana kopyasının, belgenin Incorporated, yeni düzenlenmemiş malzemesi Yazar tarafından belgeye eklenmiş buldukları.Düzenleyicisi ve üretim departmanı bitene kadar özgün belgeyle çalışma hiç kimse yeni malzeme belgeye ekleyebilirsiniz, yinelenemeyen okuma durum benzer, bu sorunu kaçınılmaz.

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

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

    read UNCOMMITTED sırasında çalıştırılan işlemleri düzey geçerli işlem tarafından okunan veri değiştirme gelen diğer hareketleri önlemek için paylaşılan kilitleri verecek.Okuma kaydedilmiş çalıştıran hareketleri düzey paylaşılan kilitleri vermek, ancak satır okuduktan sonra satır ya da sayfa kilitleri serbest bırakılır.Her iki durumda da başka bir kullanıcı dizin anahtarını değişirse, bir dizin tararken sütun anahtar değiştirme satır taramanız önünde bir konuma taşıdıysanız, okuma sırasında satır, satır yeniden görünebilir.Benzer şekilde, anahtar değiştirme satır zaten okumak dizin içindeki bir konuma taşıdıysanız satır görünmeyebilir.Bunu önlemek için SERIALIZABLE veya holdlock ipucu veya satır sürüm oluşturma'yı kullanın.Daha fazla bilgi için bkz: Tablo İpuçları (Transact-SQL) ve Satır sürüm oluşturma tabanlı yalıtım düzeyleri Veritabanı Altyapısı'nda.

  • Güncelleştirme işleminin hedef bulunmayan bir veya daha fazla satır eksik

    Sorgunuzu (IAM sayfalarını kullanarak) bir ayırma sipariş taramayı kullanarak satırları okur, read UNCOMMITTED kullanırken, başka bir işlem Sayfa bölünmesine neden olan, satır kaçırabilirsiniz.Çünkü kaydedilen okuma kullanırken bu olamaz bir tablo kilidi bir sayfa bölünme sırasında tutulur ve tablo kümelenmiş dizin varsa, güncelleştirmeleri, sayfa ayırmaya neden çünkü çıkmaz.