Merhabalar arkadaşlar, Sitemizi programlama ile ilgilenen bütün arkadaşlarımızın Türkçe içerik konusunda çektiği sıkıntılar düşünülerek soru/cevap şeklinde bir etkileşimde bulunabilmesi için kurduk. Umuyoruz hepimiz için güzel bir deneyim olur. Hasscript Ekibi

0
Veritabanına sorgu atılırken NOLOCK neden atılır? SQL'de NOLOCK ne işe yarar?

Çözüldü 1 Cevaplar 20 Gösterim Veri Tabanı

Mesela 

Select Top 100 from ogrenciler

gibi ve

Select Top 100 from ogrenciler(NOLOCK)

gibi iki sorgumuz olsun. Bu sorgular arasındaki fark nedir?

kapalı

1 cevap

1
En İyi Cevap
Erişilen datalar üzerinde devam eden bir transaction olduğu zaman, NOLOCK kullanılmadığı durumda, sql server kitlediği için işlem bitene kadar bu kayıtlar üzerinde başka bir işlem yapılmasına izin vermez ve bekletir.

Verdiğiniz ilk örnekte bu durum yaşanır. Ama eğer ikinci örnekteki gibi NOLOCK kullanılırsa bu lock kaldırılır ve dataların o anki değeri neyse beklemeden onu döndürür.

Buradaki risk; eğer NOLOCK kullanılarak çekilen datalar o andan sonra değişir ya da rollback yapılırsa, sorgunun çalıştığı anda tutarlı bir veriye ulaşmama tehlikesi bulunmaktadır. Fakat bu kabul edilebilir bir risk ise kullanmakta bir sakınca bulunmamaktadır.
(446 puan)