Mesela
Select Top 100 from ogrenciler
gibi ve
Select Top 100 from ogrenciler(NOLOCK)
gibi iki sorgumuz olsun. Bu sorgular arasındaki fark nedir?
Mesela
Select Top 100 from ogrenciler
gibi ve
Select Top 100 from ogrenciler(NOLOCK)
gibi iki sorgumuz olsun. Bu sorgular arasındaki fark nedir?
// Comments are closed.
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.