Oracle创建物化视图

语法:

create materialized view view_name
refresh [fast|complete|force]
[
on [commit|demand] |
start with (start_time) next (next_time)
]
AS select 查询语句;

语法解析:
1、create materialized view是创建物化视图的命令关键字。view_name指的是要创建物化视图的名字。
2、refresh 是指定物化视图数据刷新的模式:
force:这个是默认的刷新方式,Oracle会自动判断该如何进行数据刷新,如果满足快速刷新的条件,就进行fast刷新,不满足就进行全量刷新。
complete:这个是全量刷新数据,当要刷新数据时,会删除物化表中的所有数据,然后物化视图中的查询语句重新生成数据。
fast:采用增量的方式进行数据的刷新。通过主表的视图日志和上次刷新数据进行比对,然后增量更新物化后的数据表。
3、on[comit|demand],指的是选择物化视图数据刷新的模式。
on commit指的是基表的数据有提交的时候触发刷新物化视图,使得物化视图中的数据和基本的数据是一致性的。
on demand指定是物化视图数据刷新的另外一种方式,仅在需要更新数据时才刷新物化视图中的数据。一般配合 start with 参数按照特定的时间计划,按计划更新数据,比如每天晚上12点或每周更新一次物化视图中的数据。

实例

在这里插入图片描述
创建物化视图,创建脚本如下:

--创建物化视图需要权限
 grant create materialized view to student;  
 
 create materialized view student.mv_stuinfo 
 refresh force
 on demand
 start with sysdate next to_date(concat(to_char(sysdate+1,'dd-mm-yyyy'),'01:00:00'),'dd-mm-yyyy hh24:mi:ss') 
 as 
select t1.stuid, t1.stuname, t1.sex, t1.age, t2.classno, t2.classname
  from student.stuinfo t1, student.class t2
 where t1.classno = t2.classno;

创建好后,直接查询物化视图,可以发现已经有数据了,这时你可以随意在物化视图上加索引,进一步提高查询效率。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值