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

  • edwin maldonado

    edwin maldon

    28 Mart 2009
  • Matus Slovak

    Matus Slovak

    5 Temmuz 2007
  • WePlayWeWatch

    WePlayWeWatc

    3 Temmuz 2013