Bir dizin için kilitleme özelleştirme

The SQL Server Database Engine uses a dinamik kilitleme strategy that automatically chooses the best locking taneciklik for queries in most cases. Sayfa ve tablo ya da dizin erişim desenleri iyi anlaşılan ve tutarlı ve bir kaynak çakışması sorununu çözdü olduğu sürece, satır kilitleme varsayılan kilitleme düzeyi geçersiz öneririz.Bir kilitleme düzey geçersiz kılma önemli ölçüde tablo ya da dizin eşzamanlı erişimi engelleyebilir.Örneğin, kullanıcıların tablo erişmeden önce yayımlanacak Tablo düzey kilit beklemeniz gerekir, çünkü kullanıcılara erişim yoğun olarak performans sorunlarına neden olabilir, büyük bir tabloda yalnızca tablo düzeyindeki kilitler belirtme.

Burada sayfa veya satır kilitleme izin vermeme erişim desenleri iyi anlaşılan ve tutarlı olması durumunda yararlı olabilir, birkaç durumlar vardır.Örneğin, bir veritabanı uygulaması, bir arama kullanır tablo haftalık toplu iş iş işlemde güncelleştirilir.Eşzamanlı okuyucular erişim tablo paylaşılan (S) kilit ve haftalık toplu iş iş güncelleştirme eriştiği tablo özel (X) ile kilitlenemedi.Sayfa ve satırı tablosu kilitleme kapatma yükü hafta okuyucular tablo paylaşılan tablo kilitlerin aynı anda erişmeye izin vererek kilitleme azaltır.toplu iş iş işlemi çalıştırıldığında, bir özel tablo kilit alır, çünkü bu güncelleştirmenin verimli bir şekilde tamamlayabilirsiniz.

Sayfa ve satır kilitleme kapatma olabilir veya haftalık toplu iş iş güncelleştirme, güncelleştirme çalışırken gelen tablo erişirken eşzamanlı bir okuyucu engeller için kabul edilebilir olmayabilir.toplu iş iş işlem yalnızca birkaç satır veya sayfa değişirse okumak diğer oturumlara sağlayan satır veya sayfa düzeyinde kilitleme, izin vermek için kilitleme düzey değiştirebileceğiniz tablo olmadan engelleme.toplu iş iş işlemi, çok sayıda güncelleştirme varsa, özel bir kilit üzerinde alma tablo toplu iş iş emin olmak için en iyi yolu verimli bir şekilde tamamlanır olabilir.

Iki eşzamanlı operasyonlar aynı tablodaki satır kilit almak ve daha sonra her ikisi de sayfa kilitleme gerektiğinden blok zaman zaman bir çıkmaz oluşur.Satır kilitlerin izin vermeme beklemek için , operasyonların bir çıkmaz önleme zorlar.

taneciklik, dizin üzerinde kullanılan kilitleme olabilir küme CREATE INDEX ve ALTER INDEX deyimi kullanarak.kilit ayarları dizini sayfaları ve tablo sayfalar için geçerlidir.Buna ek olarak, CREATE tablo ve ALTER tablo deyimi için kullanılan olabilir küme birincil anahtar ve UNIQUE kısıtlamaları, kilitleme taneciklik.Için geriye doğru uyumluluk için sp_indexoption sistem saklı yordamı, taneciklik da ayarlayabilirsiniz.Belirtilen bir dizin için geçerli kilitleme seçeneği görüntülemek için , INDEXPROPERTY işlevini kullanın.Sayfa düzeyindeki kilitler, satır düzeyinde kilit veya sayfa düzeyinde ve satır düzeyinde kilit birlikte verilen bir dizin için izin.

Izin verilmeyen kilitleri

Dizin erişilemez

Sayfa düzey

Satır düzey ve tablo düzeyindeki kilitler

Satır düzey

Sayfa düzey ve tablo düzeyindeki kilitler

Sayfa düzey ve satır düzey

Tablo düzey kilitleri