Aracılığıyla paylaş


Kilitlenmeleri en aza indirme

Kilitlenmeleri tamamen kaçınılmaz olsa da, bazı kodlama kuralları izleyerek bir çıkmaz oluşturma olasılığını en aza indirebilirsiniz.Kilitlenmeleri en aza indirme hareketin iş çıkarma yeteneğini artırmak ve daha az hareket, çünkü sistem yükünü azaltmak:

  • Geri, hareket tarafından gerçekleştirilen tüm çalışma geri alındı.

  • Çünkü geri kilitli olduğunda geri alınan uygulamalar tarafından yeniden gönderildi.

Kilitlenmeleri en aza indirmek için:

  • Access nesneleri aynı sırada.

  • Kullanıcı etkileşimi hareketlerinde kaçının.

  • Kısa ve tek bir toplu iş iş işlemlerini saklamak.

  • Daha düşük bir yalıtım düzey kullanın.

  • Satır sürüm oluşturma tabanlı yalıtım düzey kullanın.

    • Satır sürüm oluşturma'yı kullanmak için etkinleştir okunur kaydedilen işlem üzerinde READ_COMMITTED_SNAPSHOT veritabanı seçeneğini ayarlayın.

    • Anlık görüntü yalıtım kullanın.

  • Bağlı bağlantılar kullanın.

Access nesneleri aynı sırada

Tüm eşzamanlı işlemler aynı sırada nesneleri erişirse, kilitlenme ortaya daha düşüktür.Örneğin, iki eşzamanlı işlemler üzerinde kilit almak, tedarikçi tablo ve bölümü tablosunda bir hareket üzerinde engellenir tedarikçi diğer hareket tamamlanıncaya kadar tablo.İlk hareketi tamamlar veya geri alınır sonra ikinci devam eder ve bir kilitlenme ortaya çıkmaz.Tüm veri değişiklikleri için saklı yordamları kullanarak nesnelere erişme sırasını standartlaştırmak.

Kilitlenme önlemeyi gösteren diyagram

Kullanıcı etkileşimi hareketlerinde kaçının

Toplu işlemi kullanıcı müdahalesi olmadan çalışan hızının en kullanıcı el için bir uygulama tarafından istenen parametre istemini yanıtlama gibi sorgulara yanıt vermelidir hızından çok daha hızlı olduğu için kullanıcı etkileşimi içeren hareketler yazılmasını önlemek.Örneğin, bir hareket ise bekleme kullanıcı girdisi ve kullanıcı için öğle yemeği için gittiği veya hatta ev kullanıcı hafta sonu için hareketin tamamlanmasını geciktirir.Yalnızca hareket tamamlandıktan veya geri hareket tarafından tutulan kilitleri serbest bırakılırlar çünkü bu sistem akışındaki düşüyor.Bile bir kilitlenme durumu ortaya çıkmaz, hareket için beklerken diğer hareketleri aynı kaynaklara erişim engellenir.

Kısa ve tek bir toplu işlemlerini saklamak

Genellikle çıkmaz oluşuyor olduğunda birkaç uzun çalışan hareketlerini yürütmek aynı veritabanında aynı anda.Uzun işlem uzun özel veya güncelleştirme kilitleri tutulur, diğer etkinliği engelleyen ve önde gelen mümkün çıkmaz durumlar.

İşlem Tamamlanıyor ve kilitleri serbest bırakarak olası gecikmelere azaltma bir hareket sırasında ağ gidiş-dönüş bir toplu iş iş hareketler tutma en aza indirir.

Daha düşük bir yalıtım düzeyi kullanın.

Bir hareketi düşük çalıştırıp çalıştıramayacağını belirlemek yalıtım düzey.Okuma kaydedilmiş uygulama verilerini okumak bir hareket sağlar (değişiklik) önceden okuma ilk hareketi tamamlamasını bekleyen olmadan başka bir işlem.Okuma kaydedilmiş gibi daha düşük bir yalıtım düzey kullanarak tutan paylaşılan kilitleri için daha kısa bir süre daha yüksek bir yalıtım düzey gibi seri hale getirilebilir.Bu kilitleme azaltır çekişme.

Satır sürüm oluşturma tabanlı yalıtım düzeyi kullanın.

READ_COMMITTED_SNAPSHOT veritabanı seçeneği olduğunda küme , okuma altında çalışan bir hareket kaydedilmiş yalıtım düzey kullanan satır sürüm oluşturma yerine kilitleri okuma işlemleri sırasında paylaşılan.

Not

Bazı uygulamalar, kilitleme ve engelleme okuma kaydedilmiş yalıtım davranışını temel yararlanır.Bu uygulamalar için bu seçeneği etkinleştirilmeden önce bazı değişiklik gerekli değil.

Ayrıca, anlık görüntü yalıtım okuma işlemleri sırasında paylaşılan kilitleri kullanmaz satır sürüm oluşturma kullanır.Bir hareket anlık görüntü yalıtım altında çalıştırmak için önce ALLOW_SNAPSHOT_ISOLATION veritabanı seçeneği olmalıdır küme eder.

Ortaya arasında okuma ve yazma işlemleri kilitlenmeleri en aza indirmek için bu yalıtım düzeyleri uygular.

Bağlı bağlantılar kullanın

Bağlı bağlantılar kullanarak, aynı uygulama tarafından açılmış iki veya daha fazla bağlantı birbirleri ile işbirliği.Birincil bağlantı olarak ve tam tersi satın alınan gibi ikincil bağlantılar tarafından alınan tüm kilitleri tutulur.Bu nedenle onlar yapmak değil blok birbirlerine.