Kilit Parçalı yapı ve hiyerarşileri
The Microsoft SQL Server Veritabanı Altyapısı has multigranular locking that allows different types of resources to be locked by a transaction.Kilitleme, maliyeti en aza indirmek için Veritabanı Altyapısı kaynakları otomatik olarak kilitler bir düzey uygun görev.Küçük bir kilitleme taneciklik, satır gibi eşzamanlılık artırır, ancak birçok satır kilitli, daha fazla kilitleri tutulmaları gerektiğinden daha yüksek bir ek yük vardır.Tablolar gibi daha büyük taneciklik sırasında kilitleme eşzamanlılık açısından pahalı bir tablonun tamamı kilitleme erişim tablo herhangi bir bölümünü diğer işlemler tarafından kısıtladığından.Ancak, daha az kilitleri tutulduğundan daha düşük bir ek yük vardır.
The Veritabanı Altyapısı often has to acquire locks at multiple levels of granularity to fully protect a resource.Kilit taneciklik düzeylerde adresindeki bu grubu bir kilit hiyerarşi adı verilir.Örneğin, bir dizinin okuma tam olarak korumak için bir örnek , Veritabanı Altyapısı gerekebilir almak paylaşım kilitleri satır ve amaçlı paylaşım kilitleri sayfaları ve tablo.
Aşağıdaki tablo kaynakları gösteren Veritabanı Altyapısı için kilitle.
Kaynak |
Açıklama |
---|---|
RID |
İçin kullanılan satır tanımlayıcısı kilit bir yığın içinde tek bir satır. |
ANAHTAR |
satır kilidi seri hale getirilebilir hareketleri anahtar aralıklardaki korumak için kullanılan bir dizin içinde. |
SAYFA |
Bir veritabanındaki veri veya dizin sayfaları gibi bir 8 kilobayt (kb) sayfa. |
UZANTI |
Bir grup bitişik sekiz sayfa, veri veya dizin sayfaları gibi. |
HoBT |
Bir yığın veya B-ağacı.B-ağacı (dizin) veya kümelenmiş dizin olan bir tablo yığın veri sayfaları koruyan bir kilit. |
TABLO |
Tüm veri ve dizinler dahil olmak üzere tüm tablo. |
DOSYA |
Bir veritabanı dosyası. |
UYGULAMA |
Uygulama belirtilen kaynak için. |
META VERİLERİ |
Meta veri kilitler. |
ALLOCATION_UNIT |
Ayırma birimi. |
VERİTABANI |
Tüm veritabanı. |
Not
HoBT ve tablo kilitleri LOCK_ESCALATION seçeneği ile etkilenecek alter table.