物化视图 materialized view
一、物化视图作用
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相关推荐
- 傅老师课堂:Oracle高级应用之物化视图(materialized view)
原文地址:http://hi.baidu.com/gukeming888/blog/item/2682f69481c8237154fb9662.html 物化视图 (Materialized View ...
- 【Clickhouse】Clickhouse 物化视图 MATERIALIZED VIEW
文章目录 1.概述 2.物化视图 2.案例 2.1 案例1 参考: 1.概述 2.物化视图 物化视图支持表引擎,数据的保存形式由表的引擎决定. 创建语法: CREATE [MATERIALIZED] ...
- 物化视图(materialized view) 实现数据迁移、数据定时同步
近日公司有一个9i 的Oracle数据库,运行效率低下.想要将其升级到11G. 但是升级之前 要将数据进行同步,好在表不是很多.只有三张表.业务压力也不大,就想到了使用物 化视图的方式将数据同步过来. ...
- Clickhouse 物化视图 MATERIALIZED VIEW
MATERIALIZED VIEW 物化视图物化视图支持表引擎,数据的保存形式由表的引擎决定.创建语法: CREATE [MATERIALIZED] VIEW [IF NOT EXISTS] [db. ...
- drop 很慢 物化视图_终于解决了物化视图复制的问题
今天真是个高兴的日子.刚回到公司就被技术总监拉了过去,给我展示研发的最近成果.好久没看到他如此轻松的神情,因为就在今天,一个关键的技术问题 -- 物化视图 materialized view--被他搞 ...
- 物化视图实践(1)----实现远程数据同步
概念: 首先澄清:Oracle9i 以前叫做快照(snapshot),自9i开始更名为物化视图(materialized view) . 早先的关键词snapshot被保留并与materialized ...
- Oracle物化视图的使用总结
1.物化视图的理解 物化视图(Materialized View)在9i以前的版本叫做快照(SNAPSHOT),从9i开始改名叫做物化视图.它是用于预先计算并保存表连接或聚集等耗时较多的操作的结果,这 ...
- oracle物化视图trunc,转载:oracle物化视图介绍
-- 创建一个基表SQL>CREATETABLETTT1(AINTPRIMARYKEY,BINT);Tablecreated.-- 以TTT1为基表创建一个可更新的MViewSQL>CRE ...
- oracle access advisor,使用Oracle SQL Access Advisor改善数据库索引与物化视图
当针对表集增加物化视图(materialized view)和索引时,理论上这些表的查询性能会得到改善.但事实上并不一定能达到理想的状态,因此Oracle推出了SQL Access Advisor工具 ...
最新文章
- 关于mtl_transactions_interface表序列
- java txt中文乱码,JAVA读取TXT文件 可解决中文乱码问题
- 在xcode4中使用cocos2d 2.x很顺利的
- Linux 小知识翻译 - 「NTP」
- KM 最优匹配 讲解
- 表单单选多选项清除默认样式小技巧
- LeetCode(59):螺旋矩阵 II
- c语言函数返回数组_C语言如何用一维数组拷贝函数,拷贝二位数组(C Primer Plus 10-7)...
- 手机扣费软件大曝光 金山手机卫士帮您免费检测
- day6 字典的介绍
- crate和mysql结合利用_create和grant配合使用,对Mysql进行创建用户和对用户授权
- MySQL索引设计与EXPLAIN
- 一个功能块实现PLC与安川机器人以太网通讯
- wpa_supplicant工具移植
- 从攻击事件分析加密攻击类型、工具、防范方法和未来预测
- 2021年全球住宅电梯收入大约1534.2百万美元,预计2028年达到1957.3百万美元
- 调研主板,树莓派 VS RK3288板子,还是 RK的主板香,但是只支持 anrdoid 7系统,估计也有刷机成 armbian或者
- 计算机的管理员在那,win10系统administrator管理员在哪
- 盘点MES系统物料管理那些事儿
- Linux的起源:从一个故事说起
热门文章
- InputStream 转成 MultipartFile
- 计算机科学与技术第3次上机实验,第十次上机实验 实验报告
- 北邮计算机软工期中考试
- 计算机视觉——【模型训练】bug解决 'Please use alternatives such as official/mnist/dataset.py'的解决
- Frontliner Heroes - 一组清新精美的新冠抗疫主题的免费商用插画
- ESP8266--系统软件定时器
- 安装 VarDictJava
- Kick Start 2018 Round B - Problem A No Nine
- AI芯片市场现状及企业竞争状况
- 关于Win10英文版安装中文语言包后,新用户登录还是英文界面的问题的解决方法