SORU
24 EYLÜL 2010, Cuma


SQL Server NOLOCK ve birleşimler

Konuşmak istediğim performansı açısından kritik bir sorgu var ve kirli okuma umurumda değil. arka plan:

Benim sorum; Eğer katılırsa kullanıyorum, bu NOLOCK ipucunu da belirtmek zorunda mıyım?

Örneğin;:

SELECT * FROM table1 a WITH (NOLOCK)
INNER JOIN table2 b WITH (NOLOCK) ON a.ID = b.ID

Eşdeğer:

SELECT * FROM table1 a WITH (NOLOCK)
INNER JOIN table2 b ON a.ID = b.ID

Ya ben katılmak üzerinde (NOLOCK) ipucu katıldı tablo tutmuyorum sağlamak için belirtmem gerekir?

CEVAP
24 EYLÜL 2010, Cuma


READ UNCOMMITTED bağımsız, özgün soru sadece adres vermeyeceğim.

Evet, katılmanın her masada WITH(NOLOCK) gerekir. Hayır, sorgular aynı değildir.

Bu egzersiz deneyin. İşlem ve insert tablo1 ve tablo2 içine bir satır başlayın. Veya geri hareket henüz taahhüt yok. Bu noktada ilk sorgunuz başarıyla dönmek ve kaydedilmemiş satırlar içerir; ikinci sorgu table2 üzerinde WITH(NOLOCK) ipucu yok, çünkü geri dönüş olmayacak.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • 8bitdigitaltv

    8bitdigitalt

    31 AĞUSTOS 2011
  • finalcall07

    finalcall07

    11 NİSAN 2008
  • VvCompHelpvV

    VvCompHelpvV

    4 EYLÜL 2007