ORACLE创建物化视图(on commit\on demand)
ORACLE创建物化视图(on commit\on demand)
前言
个人笔记(物化视图学习笔记,有兴趣的小伙伴可以看看这个视频)
物化视图的类型:Oracle提供了两种方式,手工刷新和自动刷新,默认为手工刷新。即:ON DEMAND. ON COMMIT 二者的区别在于刷新方法的不同,ON DEMAND顾名思义,仅在该物化视图“需要“被刷新 了,才进行刷新(REFRESH),即蕈物化视图,以保证和基表数据的一致性;而ON COMMIT是 说,一旦基表有了COMMIT,即事为提交,则立刻刷新,立刻更新物化视图,使得数据和基表一 致.
创建语句: create materialized view mv_name [选项N] as select from table_name;
[选项1] **BUILD [IMMEDIATE, DEFERRED]**是否在创建视图时生成数据,默认生成、 DEFERRED为不生成数据,需要的时候生成・
[选项2] REFRESH [FAST, COMPLETE, FORCE, fast是增量刷新,或者说叫 快速刷新;complete为全表刷新;force为如果增量刷新可以使用则使用增量刷新,否则全表刷 新;never则是不进行刷新(不使用).
[选项3] ON [DEMAND, COMMIT]即手工刷新和提交时刷新。
[选项4] START WITH通知数据库完成从主表到本地表第一次复制的时间。 [选项5] NEXT说明了刷新的时间间隔,下一次刷新的时间=上一次执行完成的时间+时间间 隔。
注:一般普通账号并没有建立物化视图的权限,需要使用sysdba或者sysdba赋权的用户才可以建立物化视图
一、表做了更新commit之后就自动更新物化视图(on commit)
代码如下:
--全量更新,增量更新需要定义id字段,并设置为增量更新字段,根据id进行增量更新
CREATE MATERIALIZED VIEW V_AB
REFRESH FORCE ON COMMIT
AS
SELECT
A.ICr A.HAKE, B.CLSIC, B.NAME AS CLSNAME
FROM A,3
WHERE A.CLSID - B.CLSIE;
二、设置定时更新物化视图(on demand)
代码如下:
--也是全量更新,设置定时更新物化视图,需要设置开始日期以及下次刷新时间设置,如下下次刷新时间为明天
CREATE MATERIALIZED VIEW MV_AB
REFRESH FORCE ON DEMAND
START WITH SYSDATE
NEXT SYSDATE+1
AS
SELECT
k.lC, "NAME, B.CLSIE, B.NAME ,
FROM A,B
WHERE A.CL5ID - B.CL5IE;
2.读入数据
代码如下:
--快速刷新fast刷新,如下为一分钟刷新一次,如下这个不是全量刷新创建了根据rowid进行增量刷新的规则,后续根据索引rowid进行增量更新
CREATE MATERIALIZED VIEW LOG ON A WITH ROWID;
CREATE MATERIALIZED VIEW LOG ON B WITH ROWID;
CREATE MATERIALIZED VIEW MV_AB
REFRESH FAST ON DEMAND
START WITH SYSDATE
NEXT SYSDATE+1/1440
AS
SELECT
A.ROWID AS AROWID, B.ROWID AS BROWID,
A.ID, A.NAME, B.CLSID, B.NAME AS CLSNAME
FROM A,B
WHERE A.CLSID = B.CLSI;
物化视图查询多了两列
总结
物化视图可以自动刷新也可以手动刷新,可以按照自己的需求进行选择,物化视图的创建会消耗物理内存,能够在user_table表中查到具体存储的表,这样的好处在于调用视图时不用每次都进行逻辑取数,而是直接从表中取数。
ORACLE创建物化视图(on commit\on demand)相关推荐
- oracle创建物化视图的权限,建立物化视图的权限
首先,重新构造测试环境: SQL> CONN YANGTK/YANGTK@TEST4 已连接. SQL> DROP USER TEST CASCADE; 用户已丢弃 SQL> DRO ...
- oracle雾化试图_Oracle创建物化视图
Oracle创建物化视图 通过Oracle物化视图章节,我们已经了解到Oracle物化视图的作用和创建原理,本节通过实例详细讲解Oracle是如何创建物化视图的. 创建物化视图语法: 语法:creat ...
- Oracle 11g 通过创建物化视图实现不同数据库间的表数据同步
Oracle 11g 物化视图语法如下: create materialized view [view_name] refresh [fast|complete|force] [ on [commit ...
- 创建数据库_详解Oracle数据库物化视图及创建物化视图索引
概述 物化视图是一种特殊的物理表,"物化"(Materialized)视图是相对普通视图而言的.普通视图是虚拟表,应用的局限性大,任何对视图的查询,Oracle都实际上转换为视图S ...
- oracle olap创建物化视图,CUUG oracle物化视图讲解
1.视图是什么? 普通视图:只是存放在数据字典当中的子查询,本身没有来源于基表 Oracle的物化视图是包括一个查询结果的数据库对像,它是远程数据的的本地副本,或者用来生成基于数据表求和的汇总表.物化 ...
- oracle olap创建物化视图,Oracle 物化视图同步表-roid
一.在目标库建立DBLINK 目标库操作: 主机B中建立TNS(tnsname.ora),也可以使用netca建立TNS [oracle@rac1 ~]$ cd /u01/app/oracle/pro ...
- oracle数据库创建物化视图
为了共享本地数据但是又不想把自己本地数据库其他信息给第三方,可以在其他库创建物化视图共享数据,废话不多说,直接上案例 CREATE MATERIALIZED VIEW JQMSRPT.MV_DEMO_ ...
- 创建物化视图commit_oracle 中物化视图讲解
oracle 中物化视图讲解 oracle中的物化视图首先需要创建物化视图日志,oracle根据用户创建的物化视图日志来创建物化视图日志表,物化视图日志表名称为mlog$_基表名,如果表名超过20位, ...
- Oracle之物化视图
近期根据项目业务需要对oracle的物化视图有所接触,在网上搜寻关于这方面的资料,便于提高,整理内容如下: 物化视图是一种特殊的物理表,"物化"(Materialized)视图是相 ...
- Oracle的物化视图
Oracle的物化视图提供了强大的功能,可以用于预先计算并保存表连接或聚集等耗时较多的操作的结果,这样,在执行查询时,就可以避免进行这些耗时的操作,而从快速的得到结果.物化视图有很多方面和索引很相似: ...
最新文章
- 腾讯裁撤中层干部,拥抱年轻人
- 射频,系带,调制解调器
- jdbctemplate 开启事务_来,讲讲Spring事务有哪些坑?
- iOS 向下取整、向上取整、四舍五入
- HttpWatch工具简介及使用技巧(转载)
- AI:IPPR的数学表示-CNN稀疏结构进化(Mobile、xception、Shuffle、SE、Dilated、Deformable)
- Sprint2-3.0
- python socket出现ip已经使用_Python:只接受特定的IP(socket)
- break是python合法标识符,Python笔记——break的注意事项
- mysql 5.7和8.0区别_SpringBoot 2.0 教程实战 MySQL 读写分离
- OpenCV-特征提取与检测(02、Shi-Tomasi角点检测)
- 十大经典算法图解(详细版)
- J2EE框架学习经典总结
- mapabc 地图失效不能进行任何操作
- SiamRPN 论文理解
- python常用快捷键mac_Mac PHPStorm 常用快捷键,常用设置
- 我的去 Google 化的安卓之旅
- 2021计算机excel,excel2021版本
- 血泪总结:如何从微信小程序的坑跳进支付宝小程序的大坑
- 招聘移动全栈工程师(iOS 方向)