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

前端之家收集整理的这篇文章主要介绍了Oracle认证专家视频教程-OCP全套教程之学习笔记-MVIEW前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

知识要点

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

mview基本概念

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

基本语法

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

手动刷新

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

fast+commit刷新

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

fast+start with next刷新

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

可更新物化视图

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

猜你在找的Oracle相关文章