一、物化视图作用

1)起源于数据仓库,早先用于预先计算,并保存表连接表聚集等耗时较多操作的结果。以便于在执行查询时,避免在基表上进行这些耗时的操作(基表上进行耗时操作是不是会影响其他用户使用这个基表的效率,毕竟基表查询肯定很频繁?或者单纯从Oracle性能角度出发,希望利用物化视图减少基表非常耗时的操作,从而提升数据库性能?),从而快速得到结果。

2)物化视图和表一样可以进行查询。物化视图还用于复制移动计算等方面。

二、物化视图创建时的权限问题

基于主键的物化视图:访问主表,访问主表的日志,create materialized view权限

基于rowid的物化视图:访问主表,create materialized view权限

三、创建物化视图语法

create materialized view [view_name]refresh [fast|complete|force][on [commit|demand]  |start with (start_time) next (next_time)]as{创建物化视图时用的查询语句}

四、物化视图创建时选项

4.1查询重写 query rewrite

查询重写指当对物化视图的基表进行查询时,Oracle会先判断是否可以通过查询物化视图直接得到结果。默认为disable query rewrite

4.2物化视图日志

在基于主键的物化视图上,当需要进行快速刷新时,需要建立物化视图日志。

4.3刷新

指当基表发生DML操作后,物化视图以哪种方式和基表进行同步。

刷新模式有2种:

  • on demand    用户在需要时进行刷新,刷新时间由用户定义
  • on commit
  • failed immediate

刷新方法有4种:

  • fast           一种增量刷新,在上次刷新的基础上,对此次在基表做的DML修改进行刷新。只刷                   新上次刷新以后做的修改
  • complete  完全刷新。是对整个物化视图进行的刷新
  • force         oracle在刷新时会判断是否可以采用fast刷新,如果不可以会采用complete刷新                 (肯定会刷新。若上次刷新之后的操作丢失,无法做fast刷新,于是做全表刷新)
  • nerver       物化视图不做任何刷新。

刷新默认值是force on demand

五、实践

1.查看所有的物化视图

SQL> select * from user_mviews;no rows selected

2.手动刷新物化视图

BEGIN
DBMS_MVIEW.REFRESH (
list => 'MV_T_HR_BMXX_NIRC',
Method =>'COMPLETE',
refresh_after_errors => True);
end;

其中MV_T_HR_BMXX_NIRC是物化视图的名称

3.创建数据量非常大的表

SQL> conn / as sysdba;
Connected.
SQL> create table scott.test082601 as select * from dba_objects;Table created.SQL> conn scott/scott;
Connected.
SQL> select count(*) from test082601;COUNT(*)
----------79318

创建约束和基表创建物化视图日志

alter table test082601 add constraint test_pk_pid primary key(OBJECT_ID);

create materialized view log on test082601 with primary key;

创建下面的物化视图

create materialized view mv01 build immediate refresh force on demand as select * from test082601;

create materialized view mv build immediate refresh fast on demand as select * from test082601;

create materialized view mv build immediate refresh complete on demand as select * from test082601;

向基表中插入数据

测试:

insert into test082601(object_id,object_name) values(120000,'this is a test')

插入

begin

for i in 100001..110000 loop

insert into test082601(object_id,object_name) values(i,'this is a test');

end loop;

end;

/

对三个表分别做全刷新,增量刷新

升级至19.11

查看是否失效;

查看刷新是否可行;

六、检测升级对物化视图的影响

问题描述:

即使对物化视图做增量刷新,在升级后物化视图内容是否会丢失

不对物化视图做刷新,在升级后查看物化视图是否失效

对物化视图做刷新,查看升级后物化视图是否失效

物化视图 materialized view相关推荐

  1. 傅老师课堂:Oracle高级应用之物化视图(materialized view)

    原文地址:http://hi.baidu.com/gukeming888/blog/item/2682f69481c8237154fb9662.html 物化视图 (Materialized View ...

  2. 【Clickhouse】Clickhouse 物化视图 MATERIALIZED VIEW

    文章目录 1.概述 2.物化视图 2.案例 2.1 案例1 参考: 1.概述 2.物化视图 物化视图支持表引擎,数据的保存形式由表的引擎决定. 创建语法: CREATE [MATERIALIZED] ...

  3. 物化视图(materialized view) 实现数据迁移、数据定时同步

    近日公司有一个9i 的Oracle数据库,运行效率低下.想要将其升级到11G. 但是升级之前 要将数据进行同步,好在表不是很多.只有三张表.业务压力也不大,就想到了使用物 化视图的方式将数据同步过来. ...

  4. Clickhouse 物化视图 MATERIALIZED VIEW

    MATERIALIZED VIEW 物化视图物化视图支持表引擎,数据的保存形式由表的引擎决定.创建语法: CREATE [MATERIALIZED] VIEW [IF NOT EXISTS] [db. ...

  5. drop 很慢 物化视图_终于解决了物化视图复制的问题

    今天真是个高兴的日子.刚回到公司就被技术总监拉了过去,给我展示研发的最近成果.好久没看到他如此轻松的神情,因为就在今天,一个关键的技术问题 -- 物化视图 materialized view--被他搞 ...

  6. 物化视图实践(1)----实现远程数据同步

    概念: 首先澄清:Oracle9i 以前叫做快照(snapshot),自9i开始更名为物化视图(materialized view) . 早先的关键词snapshot被保留并与materialized ...

  7. Oracle物化视图的使用总结

    1.物化视图的理解 物化视图(Materialized View)在9i以前的版本叫做快照(SNAPSHOT),从9i开始改名叫做物化视图.它是用于预先计算并保存表连接或聚集等耗时较多的操作的结果,这 ...

  8. oracle物化视图trunc,转载:oracle物化视图介绍

    -- 创建一个基表SQL>CREATETABLETTT1(AINTPRIMARYKEY,BINT);Tablecreated.-- 以TTT1为基表创建一个可更新的MViewSQL>CRE ...

  9. oracle access advisor,使用Oracle SQL Access Advisor改善数据库索引与物化视图

    当针对表集增加物化视图(materialized view)和索引时,理论上这些表的查询性能会得到改善.但事实上并不一定能达到理想的状态,因此Oracle推出了SQL Access Advisor工具 ...

最新文章

  1. 关于mtl_transactions_interface表序列
  2. java txt中文乱码,JAVA读取TXT文件 可解决中文乱码问题
  3. 在xcode4中使用cocos2d 2.x很顺利的
  4. Linux 小知识翻译 - 「NTP」
  5. KM 最优匹配 讲解
  6. 表单单选多选项清除默认样式小技巧
  7. LeetCode(59):螺旋矩阵 II
  8. c语言函数返回数组_C语言如何用一维数组拷贝函数,拷贝二位数组(C Primer Plus 10-7)...
  9. 手机扣费软件大曝光 金山手机卫士帮您免费检测
  10. day6 字典的介绍
  11. crate和mysql结合利用_create和grant配合使用,对Mysql进行创建用户和对用户授权
  12. MySQL索引设计与EXPLAIN
  13. 一个功能块实现PLC与安川机器人以太网通讯
  14. wpa_supplicant工具移植
  15. 从攻击事件分析加密攻击类型、工具、防范方法和未来预测
  16. 2021年全球住宅电梯收入大约1534.2百万美元,预计2028年达到1957.3百万美元
  17. 调研主板,树莓派 VS RK3288板子,还是 RK的主板香,但是只支持 anrdoid 7系统,估计也有刷机成 armbian或者
  18. 计算机的管理员在那,win10系统administrator管理员在哪
  19. 盘点MES系统物料管理那些事儿
  20. Linux的起源:从一个故事说起

热门文章

  1. InputStream 转成 MultipartFile
  2. 计算机科学与技术第3次上机实验,第十次上机实验 实验报告
  3. 北邮计算机软工期中考试
  4. 计算机视觉——【模型训练】bug解决 'Please use alternatives such as official/mnist/dataset.py'的解决
  5. Frontliner Heroes - 一组清新精美的新冠抗疫主题的免费商用插画
  6. ESP8266--系统软件定时器
  7. 安装 VarDictJava
  8. Kick Start 2018 Round B - Problem A No Nine
  9. AI芯片市场现状及企业竞争状况
  10. 关于Win10英文版安装中文语言包后,新用户登录还是英文界面的问题的解决方法