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.