SQL Nolock Ne İşe Yarar ? – SQL Sorguları 7

SQL sorguları yazı serimde madem sıralamada biraz yoldan çıktık, yanlış yolda biraz devam edelim. Join yani birleştirme işlemlerine geçmeden farklı bir konu ile karşınıza çıkayım. SQL sorguları yazı serime bağlı bu yazımda SQL nolock kullanımını anlatacağım.

SQL Nolock Neden Kullanılır ?

Bir çoğumuzun hazır prosedürlerde gördüğü bu kelime ne işe yarıyor ? Birden fazla prosedürün aynı anda çalışması gerektiği projelerde nolock kullanılması gerekmektedir. Nolock sayesinde SQL server kitlenmiyor. Aynı anda birden fazla sorgu paralele bir şekilde çalışabilmektedir. Uzun süren sorgularda nolock kullanılması kesinlikle önerilir. Uzun bir sorgu çalışırken sunucunuzun yanıt vermemesini istemezsiniz değil mi ?

SELECT * FROM Person.Contact WITH (NOLOCK) WHERE ContactID < 20 

Yukarıdaki kod satırında nolock kullanarak koşullu bir sorgulama işlemi gerçekleştirdim. Yukarıdaki kod çalışırken aynı zamanda başka sorguları da sunucuda çalıştırabilirdim.

Bir yandan rapor oluşturur gibi okuma işlemi yapıyorken bir yandan da kayıtları güncelleyici sorgularda dikkatli olmanızı öneririm. Bu durumu bir örnek ile açıklayayım. Sistem üzerinden bir rapor çektiğinizi düşünelim. Bu raporun hazırlanma süresinin 5 dakika olduğunu düşünelim. Aynı zamanda bir diğer pencerede bu rapor içerisinde bulunan bir kaç kaydı sildiğimizi ya da bazı rakamlarını güncellediğimizi düşünelim. Bu işlemden önce aldığımız rapor doğruluğunu yitirecektir öyle değil mi ?

Bu küçük olasılığı SQL veritabanı sistemini kullanarak oluşturduğunuz projelerde düşünmeyi unutmayın. Bu sebepten dolayı bir çok rapor işlem sonunda doğru değer gösteremeyecektir.

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir