oracle物化视图
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了oracle物化视图相关的知识,希望对你有一定的参考价值。
物化视图:具有物理存储的特殊视图,就像表对象一样。物化视图和表一样可以直接进行查询。通过读写分离机制起到分布式查询的作用,它是优化查询性能,提高系统工作效率的有效方法之一。
创建:
create materialized view view_name refresh [fast|complete|force] [ on [commit|demand] | start with (start_time) next (next_time) ] [enable query rewrite] as {创建物化视图用的查询语句}
创建物化视图:
--使用fast刷新方式需要创建物化视图日志: SCOTT>create materialized view log on emp; --创建物化视图: SCOTT>create materialized view emp_mview 2 build immediate 3 refresh fast on commit 4 enable query rewrite 5 as 6 select * from emp;
删除物化视图:
SCOTT>drop materialized view emp_mview; SCOTT>drop materialized view log on emp;
创建物化视图需要create materialized view权限:
SYS>grant create materialized view to scott;
查询重写:当对物化视图的基表进行查询时,Oracle 会自动判断能否通过查询物化视图来得到结果。优化器自动计算判断物化视图能否满足查询要求,以及是否能提高性能。如果满足要求且能提高性能,优化器将重写查询,使用物化视图获得结果。查询重写对用户是透明的。
要开启查询重写功能,query_rewrite_enabled参数要设置为true:
SYS>show parameter query_rewrite_enabled NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ query_rewrite_enabled string TRUE
物化视图的刷新方式:
- on commit:基表更新数据提交后,立即刷新物化视图。
- on demand:手动调用dbms_mview.refresh过程刷新物化视图。
complete:完全刷新,重新执行创建物化视图的sql语句。
fast:增量刷新,只更新变化了的数据,要创建物化视图日志。
force:先使用fast更新,如果失败,则使用complete。
never:不刷新。
以上是关于oracle物化视图的主要内容,如果未能解决你的问题,请参考以下文章