oracle数据库优化-视图合并测试

       视图合并是指优化器不在将view部分当做一个独立的处理单元来单独执行,而是会将其拆开,把其定义sql语句中的基表拿出来与外部查询中的表进行合并。(相反存在/*+materized*/)。

       oracle数据库中视图合并分为3种类型,简单视图合并,外连接视图合并,复杂视图合并。

简单视图:不包含外连接,视图定义不包含distinct、group by 、聚合函数等的视图。

简单视图合并条件:该视图sql中不包含集合运算符(UNION\UNION ALL\ INTERSECT\MINUS),CONNECT BY 语句、rownum等。


SQL> create view view1 as select object_id,object_name from t1;

View created.

SQL> create view view2 as select object_id,object_name from t1 where rownum<1000;
SQL> select * from t2,view1 t where t.object_name=t2.table_name;

SQL>  select * from t2,view2 t where t.object_name=t2.table_name;

 

外连接视图合并

外连接视图合并是指使用了外连接。以及定义sql不包含distinct、group by等聚合函数的sql视图合并。

合并条件:外连接视图作为驱动表,或者被驱动表时视图定义的基表只能包含一个表。

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值