Veritabanı Altyapısı ' kilitleme
Locking is a mechanism used by the Microsoft SQL Server Database Engine to synchronize access by multiple users to the same piece of data at the same time.
Bir hareketin geçerli durumunu bir veri parçasının bir bağımlılık edinme önce gibi okuma veya verileri değiştirme, kendisini etkilerini aynı verileri değiştirme, başka bir işlem korumalısınız.Hareket bir veri parçasını kilitlendiğinde isteyerek bunu gerçekleştirir.Farklı modlar, gibi paylaşılan veya özel kilitleri var.Kilit modu, işlem verileri olan bağımlılığını düzeyini tanımlar.Işlem zaten başka bir işlem bu verilere uygulanan kilit modu ile çakışan bir kilit verilebilir.Işlem örnek aynı verileri önceden verilmiş bir kilit ile çakışan bir kilit modu istekleri Database Engine istekte bulunan işlem, ilk kilidi yayımlanıncaya kadar duraklatılır.
Bir işlem bir veri parçasının değiştirir, bu işlem sonuna kadar değişiklik koruma kilit tutar.Uzun bir hareket korumak için alınan kilitlerin tutan nasıl okuma işlemleri bağlıdır işlem yalıtım düzey ayarı.Işlem tamamlandığında, bir işlem tarafından tutulan tüm kilitlerin serbest bırakılır (tamamlar veya geri alır).
Uygulamalar genellikle kilitlerin doğrudan isteme.Kilitler, bir parçası tarafından dahili olarak yönetilir Database Engine Kilit Yöneticisi olarak adlandırılır. örnek, Database Engine işlemler bir Transact-SQL deyim, Database Engine Query processor hangi kaynaklara erişim belirler. Query processor kilitlerin ne tür erişim ve hareket yalıtım düzey ayarı türüne göre her kaynağın korumak için gerekli belirler.Query processor, kilit yöneticisinden sonra uygun kilitlerin ister.Diğer işlemler tarafından tutulan çakışan yok kilit yoksa kilit Yöneticisi kilitlerin verir.
Aşağıdaki tablo kilitleme ana kavramları açıklayan konuları listeler.
Konu |
Açıklama |
---|---|
Kilitler, farklı türde bir satır, sayfalar, dizinler, tablo veya veritabanları gibi kaynakları da istenebilir.taneciklik kilitlerinin sıradüzeni oluşturma, birden çok düzeyde kilitler koyarak bazı işlemler gerektirir. |
|
Belirttiğiniz farklı modlar kilitlerin sahip düzey diğer hareketler için kilitli kaynak erişimi. |
|
Kilit modu uyumluysa, birden çok hareketleri aynı kaynak üzerinde aynı anda kilitlerin elde edebilirler.Varolan bir kilit ile çakışan bir kilit modu bir işlemin istekleri, ilk kilidi serbest kadar hareket duraklatıldı. |
|
Anahtarların aralık kilitleme hayali ekler ve siler önlemek için seri hale getirilebilir yalıtım düzeyinde çalışan işlemler sağlar. |
|
Bir hareket, çok sayıda satır veya sayfa kilitler, edinme, Database Engine bir tablo kilit verin ve sonra ek yükü kilit en aza indirmek için tüm alt düzey kilitlerin serbest. |
|
The Database Engine can dynamically choose the düzey of kilit taneciklik based on the optimizer's estimate of the number of rows a Transact-SQL deyim will reference. |
|
The Database Engine and its associated APIs provide several mechanisms for displaying information about the locks currently held in an örnek or a database. |
|
Her görev, kaynak başka bir görev tarafından gereken kilit olduğundan iki görevi kalıcı olarak birbirlerine engellediğinizde, kilitlenme oluşur. |