读书人

查询效率有关问题 向mengmou()mengmou

发布时间: 2012-02-24 16:30:39 作者: rapoo

查询效率问题 向mengmou()mengmou()以及众高手请教
偶然来到这里,才发现这里有好多高手,先有一问题想众高手请教一下

员工信息表1[员工名,姓名,性别],T_Worker[WorkerId,name,sex],Worderid为该表主键
员工信息表2[员工号,电话,手机,Email],T_WorkerContact[WorkerId,tel,phone,email],
WorkerId为该表主键
现在要取得员工号为001的员工的姓名和手机信息,有如下sql,如何修改才能使得其执行效率最高?
并写明原因
select * from T_Worker a,T_WorkerContact b where a.workerid=b.workerid and a.workerid= '001 '



[解决办法]
不要查出所有的字段,只查所需的字段:

select a.name,b.phone from T_Worker a,T_WorkerContact b where a.workerid=b.workerid and a.workerid= '001 '

此语句不能再优化,而无法优化!

再说该记录只有一条,查询速度应该不要1s
[解决办法]
--try
select * from T_WorkerContact b
left join T_Worker a on a.workerid=b.workerid
where a.workerid= '001 '
[解决办法]
--try


select a.workerid, a.name, b.phone
from T_Worker a
inner join T_WorkerContact b on a.workerid=b.workerid and a.workerid= '001 '

读书人网 >SQL Server

热点推荐