+ -
当前位置:首页 → 问答吧 → 请高手比较下两段代码的执行效率

请高手比较下两段代码的执行效率

时间:2011-11-02

来源:互联网

表 t1 (50个字段) t2(30个字段)

select col1,col2,col_1,col_2 from (select * from t1 inner join t2 on t1.col1=t2.col_1)


select * from (select col1,col2 from t1)a inner join (select col_1,col_2 from t2)b on a.col1=b.col_1

我认为下面的效率高点,不知道可以用什么软件测sql的执行时间不?

作者: xhzlhc   发布时间: 2011-11-02

在inner join,先用子查询再关联没什么大区别
法2用在外连接有时还有用

内联接,直接
select col1,col2,col_1,col_2 
from t1 ,t2
where t1.col1=t2.col_1
;
简便、不影响效率

作者: canhui87   发布时间: 2011-11-02

plsqldev 按F5键查看执行计划, 看看两条语句的cost

作者: huangdh12   发布时间: 2011-11-02

尽量不要用 * ,用到哪些字段列明
应该第一条效率高吧,直接就过滤了,第二条是全表先出来

作者: cnwz   发布时间: 2011-11-02

谢谢各位了,我去测试下

作者: xhzlhc   发布时间: 2011-11-02

3楼说对了 第一条执行效率高

我原来的想法是第二条执行效率高些,因为我先把字段取出来了,这样字段少一些,占内存少,效率高,但是忽略了内查询取字段遍历了全表

怪不得我们老大说我让我仔细看看我写得代码,哈哈,果然是不经看啊

作者: xhzlhc   发布时间: 2011-11-03