当前位置:Gxlcms > 数据库问题 > 【oracle】物化视图

【oracle】物化视图

时间:2021-07-01 10:21:17 帮助过:5人阅读

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】物化视图

标签:ant   complete   time   分布   更新   日志   使用   物化视图   失败   

人气教程排行