SORU
14 Ocak 2010, PERŞEMBE


SQL Server vs Performansı VAR

Aşağıda daha verimli olurdu merak ediyorum?
Her zaman SQL Server sonuç IF büyük bir ifadesine set döner inanıyorum, çünkü bir bit IN kullanırken dikkatli oldum. Büyük bir sonuç kümesi için bu kötü performansa neden olabilir. Küçük sonuç kümeleri için, ya da tercih edilir emin değilim. Büyük sonuç kümeleri için, EXISTS daha verimli olmaz mı?

WHERE EXISTS (SELECT * FROM Base WHERE bx.BoxID = Base.BoxID AND [Rank] = 2)

vs

WHERE bx.BoxID IN (SELECT BoxID FROM Base WHERE [Rank = 2])

CEVAP
14 Ocak 2010, PERŞEMBE


EXISTS koşul doğru olduğunu kanıtladı bu motorun bir isabet bulduktan sonra bakmayı bırak, çünkü daha hızlı olacaktır.
IN ile işlenmesi önce alt sorgu tüm sonuçları toplamak olacaktır.

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • DudeFromUkraine

    DudeFromUkra

    7 Ocak 2008
  • Harvest: Greg Laurie

    Harvest: Gre

    6 HAZİRAN 2006
  • Thom Hall

    Thom Hall

    24 Kasım 2006