您的位置:首页 > 博客中心 > 数据库 >

oracle查询转换_view merge

时间:2022-03-10 16:55

oracle对于子查询的支持做的很好,oracle optimizer会对inline view进行query transfomation,即视图合并,不过也经常带来意想不到的问题。
下面是一个inline view的merge的例子:

1,  创建临时表

1 create table test1 as select * from dba_objects;
2 create table test2 as select * from dba_objects;

2,  以下查询语句

gxlsystem.com,gxl网

可以很明显的看出,时间花费在什么地方了。在进行hash group by和filter的过程中花费了大量的时间。
因为test1和test2进行hash join的中间结果有147,500,423条。

  

总结:
无论是inline view的merge还是其它的可选执行计划,最优的那个访问路径一定是具备了以下的条件:

  1. 优先对查询应用过滤性条件,尽可能多的减少中间结果集。
  2. 尽可能的只扫描期望得到的那一部分数据,减少不必要的开销。

oracle查询转换_view merge,gxlsystem

本类排行

今日推荐

热门手游