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

  • filmurfreakur

    filmurfreaku

    29 Mart 2007
  • geraldnonadoez

    geraldnonado

    3 Temmuz 2013
  • RiceBunny

    RiceBunny

    16 ŞUBAT 2006