Oracle SQL中表连接顺序探究

来源:互联网 发布:centos不能ping外网ip 编辑:程序博客网 时间:2024/06/11 16:19

SQL语句优化中大多会写上这样一句,把记录数最小的记录写到From子句的最后以提高查询的效率,我开始也深信不疑,但是自己写语句验证的时候却得到相反的结果。

下面是我验证的结果:

 

SQL> set timing onSQL> select  count(*) from all_objects,dept;   COUNT(*)----------    136540 Executed in 3.219 seconds SQL> select  count(*) from dept,all_objects  2  ;   COUNT(*)----------    136540 Executed in 1.531 seconds

这样的结果让我很疑惑,后来仔细查阅一些资料后得知,这一条优化规则仅在基于规则的优化方法时有效,然后查看了自己的oracle的优化选择。

choose是oracle的默认选项,采用choose的时候,既可以采用基于成本的优化方法,也可以采用基于规则的优化方法。所以可以肯定的是我上面的例子采用的应该是基于成本的优化方法





原创粉丝点击