2014-11-21 82 views
-1

請通過以下查詢,並幫助我瞭解哪一個是有效的,以及如何?哪個性能最好?

在邏輯查詢執行中,where子句將在完成連接後執行,因此我認爲查詢2將獲得性能優勢。是對的嗎?

查詢1:

select a.*, b.* 
from table1 a 
join table2 b on a.colA = b.colA 
where a.ColB = 'Somevalue' 

查詢2:

select a.*, b.* 
from 
    (select * 
    from table1 
    where ColB = 'Somevalue') a 
join table2 b on a.colA = b.colA 

在此先感謝

+0

可能複製http://stackoverflow.com/questions/的14052596/subquery-vs-inner-join-in-sql-server – 2014-11-21 05:32:14

+6

*如果你有兩匹馬,並且你想知道哪兩匹比較快,那麼**比賽你的馬匹*** - 看看[哪個更快?](http://ericlippert.com/2012/12/17/performance-rant /)由Eric Lippert爲更多背景 – 2014-11-21 05:41:47

回答

-1
select a.*, b.* 
from table1 a 
join table2 b on a.colA = b.colA and a.ColB = 'Somevalue'