2014-11-21 52 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'