日期:2014-05-17  浏览次数:20563 次

执行效率问题

--下面SQL语句,请问执行效率一样吗?
SELECT  *  FROM  a  WHERE  zd1  in  (SELECT  zd1  FROM  b)
--与
SELECT  *  FROM  a  WHERE  zd1  in  (SELECT  distinct  zd1  FROM  b)
--说明:zd1在b表中有重复记录

------解决方案--------------------
也可以把两个查询丢一个查询页面,然后开启执行计划,一起执行,看看百分比
------解决方案--------------------
我在一个大的表中测试了一下,发现两个语句产生的执行计划也是一样的,效率也是各占50%。

两个语句应该是效率一样的。
------解决方案--------------------
能不用In就最好别用In,数据量大起来后效率很低。
------解决方案--------------------
改成join的话应该更快