SELECT deyimleri NOLOCK ipucunu etkisi
Asıl soru şu sanırım:
Eğer kirli okur umrumda bile, ekleme(NOLOCK) ilebir deyim performansını etkileyecek ipucu:
- güncel SELECT deyimi
- verilen tabloya karşı diğer işlemler
Örnek:
Select *
from aTable with (NOLOCK)
CEVAP
1)Evet, NOLOCK
ile seçin daha hızlı normal bir seçin daha tamamlayacak.
2)Evet, NOLOCK
ile seçin etkilenen tabloda diğer sorgular daha hızlı bir normal seçin daha tamamlamak için izin verir.
Neden bu olur?
NOLOCK
genellikle (bağlı DB engine) anlamına gelir ver verilerinizi, ve umurumda değil, ne halidir, ve hiç zahmet etme elinde iken hala okuyorsun. Tek seferde daha hızlı, daha az kaynak-yoğun, ve çok tehlikeli.
Hiç bir güncelleme yapmak ya da mutlak doğruluğu NOLOCK
okuma kökenli bu verileri kullanarak gerekli sistem kritik bir şey, ya da gerçekleştirmek için uyarılmalıdır. Bu veriler, sorgunun çalışması sırasında silinmiş veya Henüz kesinleşmiş olması diğer oturum silinmiş satırlar içeriyor kesinlikle mümkündür. Bu veriler kısmen güncelleştirilmiş satır içeren mümkündür. Bu veriler, yabancı anahtar kısıtlamalarını ihlal eden kayıtları içeriyor olabilir. Bu tabloya eklenen satır hariç ama henüz işlenmesi mümkündür.
Gerçekten verilerin hali ne bilmenin bir yolu var.
Eğer kandırmaya çalışıyorsun şeyler gibi bir Satır Sayısı veya diğer Özet verileri bazı marjı hata kabul edilebilir, o zaman NOLOCK
bir performansı artırmak için bu sorgular ve önlemek olması onları olumsuz etki veritabanı performans.
Her zaman büyük bir dikkatle NOLOCK
ipucu kullanın ve kuşkuyla döndürür herhangi bir veri davranın.
Nasıl elisp içinde birden çok deyimler...
Nasıl hazırlanmış deyimleri SQL enjeks...
Görünüm'in SELECT yan tümcesi alt...
Elde ham SQL PDO hazırlanmış deyimleri...
SQL select katılın: 'önek olarak ...