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

  • Film Riot

    Film Riot

    16 NİSAN 2006
  • pucksz

    pucksz

    24 Mart 2006
  • Visual Life

    Visual Life

    3 Temmuz 2006