加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

Oracle认证专家视频教程-OCP全套教程之学习笔记-MVIEW

发布时间:2020-12-12 14:45:47 所属栏目:百科 来源:网络整理
导读:知识要点 mview基本概念 基本语法 手动刷新 fast+commit刷新 fast+start with next刷新 可更新物化视图 mview基本概念 materialized view 占用自己的存储空间,物化视图,也叫快照,默认行的内容只读 基本语法 创建物化视图日志 create materialized view lo

知识要点

  • mview基本概念
  • 基本语法
  • 手动刷新
  • fast+commit刷新
  • fast+start with next刷新
  • 可更新物化视图

mview基本概念

materialized view 占用自己的存储空间,物化视图,也叫快照,默认行的内容只读

基本语法

  • 创建物化视图日志
create materialized view log on tabname;要有一个主键
create materialized view log on tabname with rowid;
  • 创建物化视图
create materialized view <> refresh <刷新方式 > on <刷新时间> as select .....
  • 刷新方式
complete(完全刷新) 
fast(依赖于物化视图日志,识别哪些行发生了更改) 
force(强制刷新)
  • 刷新时间
on demand 手动刷新
on commit;事务提交就刷新
start with / next 指定刷新时间
  • 手动刷新
exec dbms_mview.refresh('mviewname','fast');
exec dbms_mview.refresh('mviewname','c');

手动刷新

  • 创建实验用户mvl
sys>create user mvl identified by 123;
sys>grant connect,resource to mvl;
sys>grant select on scott.emp to mvl;
sys>grant create materialized view to mvl;
sys>grant execute on dbms_mview to mvl;

创建
  • 物化视图
mvl>create materialized view emp as select * from scott.emp;
  • 验证
scott用户做更新
scott>update emp set sal = sal -2;
scott>commit;
  • 因为创建的时候没有定义物化视图刷新方式,因此这里要手动进行刷新才能同步数据
mvl>exec dbms_mview.refresh('emp','c');
  • 可以看到已经同步
mvl>select * from empf1;

fast+commit刷新

  • fast刷新需要首先创建物化视图日志
sys>grant create materialized view  to scott;

scott>create materialized view log on emp;

sys>grant select on scott.MLOG$_EMP to mvl;
  • 授予权限
sys>grant on commit refresh on scott.emp to mvl;
  • 创建快速刷新且提交后立刻同步的物化视图
mvl>create materialized view empf1 refresh fast on commit as select * from scott.emp;
  • 验证
scott>update emp set sal = sal + 2;
scott>commit;
  • 可以看到已经同步
mvl>select * from empf1;

fast+start with next刷新

  • 创建快速刷新且一分钟后自动同步的物化视图
mvl>create materialized view empf2 refresh fast start with sysdate next sysdate+1/1440  as select * from scott.emp;
  • 验证
scott>update emp set sal = sal + 2;
scott>commit;
  • 1分钟之后可以看到已经同步
mvl>select * from empf1;

可更新物化视图

mvl>create materialized view empf3 refresh fast for update start with sysdate next sysdate+1/1440  as select * from scott.emp;

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读