1. Ana Sayfa
  2. SQL Server
  3. SQL Server Locking Hints (SQL Server Tablo Kilit İşlemleri)

SQL Server Locking Hints (SQL Server Tablo Kilit İşlemleri)

SQL Server’da yaptığımız bazı işlemler sırasında kullandığımız tabloları kilitlememiz gerekebilir. Yada kilitli bir tablodan kilidin açılmasını beklemeden sorgu çekmek isteyebiliriz. Bu gibi durumlar için kullanabileceğimiz SQL Server Locking Hint leri aşağıdaki gibidir;

HOLDLOCK = Kilitlenme işleminin Transaction bitimine kadar sürmesini sağlar. TabLock gibi bazı ifadeler sadece statement bazında kilitleme yapmaktadır. Bunların Transaction bazında kilitleme yapması isteniyorsa HOLDLOCK ifadesiyle beraber kullanılması gerekmektedir. HOLDLOCK, SERIALIZABLE ile aynı işi yapmaktadır.

NOLOCK = Kilitli bir tablodan kilidin açılmasını beklemeden kayıt çekmeye yarar. Kirli kayıt (Dirty Read) alınması mümkündür. Kullanımı Select * from TableName WITH (NOLOCK) şeklindedir. NOLOCK, READUNCOMMITTED ile aynı işi yapmaktadır.

PAGELOCK =  Sayfa bazında kilitleme yapmak için kullanılır.

READCOMMITTED = Kilitli tabloları kullanabilmek için kilidinin açılmasını bekler. SQL Server Default’udur.

READUNCOMMITTED = NoLock ile aynı işi yapar.

ROWLOCK = Kayıt bazında kilitleme yapmak için kullanılır.

SERIALIZABLE = HoldLock ile aynı işi yapar.

TABLOCK = TabLock ile Lock edilen tablolarda Read işlemi yapılabilirken insert ve Update işlemi yapılamamaktadır. Ayrıca Transaction boyutunda çalışabilmesi için holdLock ifadesi ile beraber kullanılması gerekmektedir.

TABLOCKX = TabLockx in tabLock dan farkı read işleminide izin vermemesidir. Ayrıca Transaction bazında çalışabilmekte dolayısıyla ekstradan holdLock ifadesine gerek kalmamaktadır.

UPDLOCK = UpdLock ile Locklanmış tablo larda select ve insert işlemleri yapılabilirken, update işlemi yapılamamaktadır. Statement ve Transaction bazında çalışır. Transaction bazında çalışması için ayrıca HOLDLOCK ifadesine gerek yoktur.

XLOCK = TabLockx gibidir. Farkı statement da ki bütün işlemlerin bitmesini bekler. En kapsamlı Lock işlemidir.

Sistemde bulunan kilitli tablolar EXEC sp_Lock komutuyla görüntülenebilir.

Bu konuyla ilgili sorularınızı https://forum.mshowto.org linkini kullanarak ulaşacağınız forum sayfamızda sorabilirsiniz.

Referanslar

www.mshowto.org

Yorum Yap

Yazar Hakkında

Milenyumdan beri ilginç bir merak duygusu ile başlayan bilgisayar ve teknoloji dünyası merakı sayesinde eğitim yaşantımı doğup büyüdüğüm Düzce'de geçirdim. Sonrasında Düzce'nin kendimi geliştirmek adına yeterli imkanlara sahip olmadığından İstanbul'a gelip Bilge Adam Eğitim Kurumlarından Yazılım ve Veritabanı eğitimi aldım. Eğitimimi tamamlarken çeşitli Windows ve Web uygulamaları geliştirdim. Sırası ile Sentez Yazılım, Nebim Yazılım, Ciceksepeti, Doğan Holding, Kariyer.Net, TurkNet gibi firmalarında Yönetici / Müdür pozisyonlarında farklı ünvanlarda ( Yazılım Geliştirici / Raporlama ve Veritabanı Yöneticisi gibi) görev aldım. Şimdilerde ise DMC Bilgi Teknolojileri firmasının Kurucu Ortaklığını ve Veritabanı Danışmalığı Hizmeti vermekteyim.

Yorum Yap