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

  • Jon Reed

    Jon Reed

    14 AĞUSTOS 2006
  • kndx

    kndx

    11 Mart 2006
  • metal571

    metal571

    30 Mayıs 2006