SORU
29 Temmuz 2009, ÇARŞAMBA


SQL performans vs KATILMAK mı?

KATILIN ya da bir bir kullanarak bana doğru sonuçlar verir... genelde daha iyi performansa sahip Olan ve neden bir dava var mı? Ne kadar çalıştırıyorsunuz ne mi bağlı? (BİLGİNİZE MSSQL kullanıyorum)

CEVAP
29 Temmuz 2009, ÇARŞAMBA


Genellikle, IN JOIN konuşma farklı sonuçlar farklı sorgular.

SELECT  a.*
FROM    a
JOIN    b
ON      a.col = b.col

aynı şey değildir

SELECT  a.*
FROM    a
WHERE   col IN
        (
        SELECT  col
        FROM    b
        )

b.col benzersiz değilse.,

Ancak, bu ilk sorgu için eşanlamlı

SELECT  a.*
FROM    a
JOIN    (
        SELECT  DISTINCT col
        FROM    b
        )
ON      b.col = a.col

Eğer birleştirme sütunu gibi UNIQUE işaretli ise, hem bu sorgu SQL Server aynı plan verim.

Eğer değilse, o zaman IN DISTINCT daha hızlı JOIN daha.

Performans detayları için: blogumda bu makaleye bakın

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • H3Ctic (old channel)

    H3Ctic (old

    23 Mart 2011
  • Maschine Tutorials

    Maschine Tut

    15 ŞUBAT 2011
  • Noam Erez

    Noam Erez

    3 NİSAN 2012