码迷,mamicode.com
首页 > 数据库 > 详细

【oracle】物化视图

时间:2017-09-22 12:04:13      阅读:138      评论:0      收藏:0      [点我收藏+]

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

物化视图:具有物理存储的特殊视图,就像表对象一样。物化视图和表一样可以直接进行查询。通过读写分离机制起到分布式查询的作用,它是优化查询性能,提高系统工作效率的有效方法之一。

 

创建:

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

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

原文地址:http://www.cnblogs.com/najiadian/p/7573548.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!