读书人

哪个语句的效率会高一些

发布时间: 2013-01-28 11:49:56 作者: rapoo

请教高手 哪个语句的效率会高一些


--语句1
select e.em_id, i.ID,i.mbno,i.Msg,i.ArriveTime,i.Readed,i.username,i.comport
from InBox i
left join employee e
on RIGHT( i.mbno,11) = e.em_mobile
where i.Readed=2

--语句2
select e.em_id, i.ID,i.mbno,i.Msg,i.ArriveTime,i.Readed,i.username,i.comport
from (select ID,mbno,Msg,ArriveTime,Readed,username,comport
from InBox where Readed=2 ) i
left join employee e
on RIGHT( i.mbno,11) = e.em_mobile




请教高手哈,这两个查询语句哪个效率高呢? 为什么? sql join
[解决办法]
语句1会比2效率好一些.
语句2带有子查询.
[解决办法]
第一条 第一条语句 比第二条少个子查询 多个where语句 子查询效率必然比where语句效率低
[解决办法]
把两个语句放到同一个界面,开启执行计划,然后一起执行,看百分比就知道了。把执行计划贴出来看看。
[解决办法]
Ctrl +L 看执行计划。
索引做好,应该是2快.
[解决办法]
那就是一样咯
[解决办法]
set stistics time on
go
set stistics io om
go
--sql语句

set stistics time off
go
set stistics io off
go


这个可以看到cpu编译和执行,读取的次数。楼主可以试试。


[解决办法]
如果数据多的话就不一样了
[解决办法]
这两个语句,优化器会生成相同的执行计划,速度是一样的

读书人网 >SQL Server

热点推荐