ITPub博客

首页 > 数据库 > Oracle > 物化视图

物化视图

原创 Oracle 作者:roypal 时间:2010-01-12 16:08:03 0 删除 编辑

Oracle的物化视图提供了强大的功能,可以用于预先计算并保存表连接或聚集等耗时较多的操作的结果,这样,在执行查询时,就可以避免进行这些耗时的操作,而从快速的得到结果。物化视图有很多方面和索引很相似:使用物化视图的目的是为了提高查询性能;物化视图对应用透明,增加和删除物化视图不会影响应用程序中SQL语句的正确性和有效性;物化视图需要占用存储空间;当基表发生变化时,物化视图也应当刷新。

create materialized view [view_name]
refresh
[fast|complete|force][
on [commit|demand]
|
start
with (start_time) next (next_time)
]
as select …

[@more@]

refresh [fast|complete|force] 视图刷新的方式:fast: 增量刷新.假设前一次刷新的时间为t1,那么使用fast模式刷新物化视图时,只向视图中添加t1到当前时间段内,主表变化过的数据.为了记录这种变化,建立增量刷新物化视图还需要一个物化视图日志表。create materialized view log on (主表名)。
complete:
全部刷新。相当于重新执行一次创建视图的查询语句。
force:
这是默认的数据刷新方式。当可以使用fast模式时,数据刷新将采用fast方式;否则使用complete方式。

物化视图日志:

如果需要进行快速刷新,则需要建立物化视图日志。物化视图日志根据不同物化视图的快速刷新的需要,可以建立为ROWID或PRIMARY KEY类型的。还可以选择是否包括SEQUENCE、INCLUDING NEW VALUES以及指定列的列表。

CREATE MATERIALIZED VIEW LOG ON mv_lvy_levytaxbgtdiv
tablespace USERS WITH ROWID ;

数据刷新的时间:
on demand:
在用户需要刷新的时候刷新,这里就要求用户自己动手去刷新数据了(也可以使用job定时刷新,默认模式)
on commit:
当主表中有数据提交的时候,立即刷新MV

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/21143113/viewspace-1030507/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2009-03-18

  • 博文量
    29
  • 访问量
    32216