一、物化视图
物化视图是包括一个查询结果的数据库对象,它是远程数据的本地副本,或者用来生成基于数据表求和的汇总表。物化视图存储基于远程表的数据,也可以称为快照。
对于数据仓库:创建的物化视图通常情况下是
1、聚合视图
2、单一表聚合视图
3、连接视图
在复制环境下,创建的物化视图通常情况下是
1、主键物化视图
2、ROWID视图
3、子查询视图
二、创建物化视图的准备条件
假设双方数据库都是ORACLE10g,需要同步过来的表名叫:complete 对方数据库用户名:admin 密码:admin SID:orcl
1、创建DB_LINK
CREATE DATABASE LINK DB_LINK_TO_ORCL
CONNECT TO "admin" identified by "admin"
using "orcl"
2、创建物化视图快速刷新日志(必须在主库执行)
视图的刷新将采用增量刷新的方式,因此,为配合增量刷新,ORACLE要求要在主表上建立物化视图日志
CREATE MATERIALIZED VIEW LOG ON complete
WITH PRIMARY KEY
INCLUDING NEW VALUES;
3、创建物化视图
CREATE MATERIALIZED VIEW MV_COMPLETE
BUILD IMMEDIATE--创建物化视图的时候就生成数据
REFRESH FAST WITH PRIMARY KEY --增量刷新
ON DEMAND --在用户需要的时候进行刷新
ENABLE QUERY REWRITE --支持查询重写
AS
SELECT * FROM COMPLETE@DB_LINK_TO_ORCL;--查询语句
创建物化视图选项详解:
BUILD IMMEDIATE --创建物化视图的时候就生成数据(BUILD DEFERRED则在创建时不生成数据,以后根据需要在生成数据.默认为BUILD IMMEDIATE)
REFRESH FAST WITH PRIMARY KEY --根据主表主键增量刷新(FAST 采用增量刷新的机制,只将自上次刷新以后对基表进行的所有操作刷新到物化视图中去。FAST必须创建基于主表的视图日志。对于增量刷新选项,如果在子查询中存在分析函数,则物化视图不起作用。
,COMPLETE 会删除表中所有的记录(如果是单表刷新,可能会采用TRUNCATE的方式),然后根据物化视图中查询语句的定义重新生成物化视图,FORCE Oracle会自动判断是否满足快速刷新的条件,如果满足则进行快速刷新,否则进行完全刷新)
ON DEMAND -- (ON DEMAND / ON COMMIT)ON DEMAND指物化视图在用户需要的时候进行刷新,可以手工通过DBMS_MVIEW.REFRESH等方法来进行刷新,也可以通过JOB定时进行刷新,即更新物化视图,以保证和基表数据的一致性;而ON COMMIT是说,一旦基表有了COMMIT,即事务提交,则立刻刷新,立刻更新物化视图,使得数据和基表一致
ENABLE QUERY REWRITE --创建的物化视图支持查询重写(默认为DISABLE QUERY REWRITE)
PRIMARY KEY和ROWID --(WITH PRIMARY KEY选项生成主键物化视图,也就是说物化视图是基于主表的主键,而不是ROWID。PRIMARY KEY是默认选项,为了生成PRIMARY KEY子句,应该在主表上定义主键,否则应该用基于ROWID的物化视图。主键物化视图允许识别物化视图主表而不影响物化视图增量刷新的可用性。ROWID物化视图只有一个单一的主表,不能包含“DISTINCT”、聚合函数、group by、子查询、连接、set操作)
4、创建JOB 5分钟刷新一次
BEGIN
DBMS_REFRESH.MAKE (
NAME => 'MV_COMPLETE',
LIST => 'MV_COMPLETE,
NEXT_DATE => SYSDATE,
INTERVAL => 'SYSDATE + 5/1440');
END;
三、物化视图与视图的区别
视图是虚拟表,物化视图是一种特殊的物理表。
区别一:
物化视图:在查询时直接读出物化视图中的数据。
普通视图:在查询时需要在查询中嵌套个子查询然后去访问原表。
区别二:
物化视图:不可以更新,删除,修改等操作,只能够查询。
普通视图:可以更新,删除,修改等操作,但是这些操作将直接反应在原表中。
分享到:
相关推荐
Oracle物化视图创建和使用,设置物化视图的自动刷新时间
Oracle物化视图使用[文].pdf
Oracle物化视图增量刷新的应用研究.pdf
利用ORACLE物化视图建立报表数据库.pdf
Oracle物化视图应用详,有实例和各属性介绍
里面详细讲述物化视图的种种创建,物化日志的结构,group by 语句创建物化视图的处理
物化视图学习笔记 错误问题分析总结 详细讲解了物化视图的内部构造,从零基础开始学习 重点说明ORA-12034的错误解决方案
物化视图 (MV)在一个段中存储查询结果,并且能够在提交查询时将结果返回给用户,从而不再需要重新执行查询 — 在查询要执行几次时,这是一个很大的好处。物化视图可以利用一个快速刷新机制从基础表中全部或增量刷新...
Oracle物化视图整理,包含所有资料,值得学习
Oracle物化视图介绍 根据学习总结并将多篇文章结合而成。
oracle物化视图资料,表明物化视图的创建等
物化视图是包括一个查询结果的数据库对像,它是远程数据的的本地副本,或者用来生成基于数据表求和的汇总表。物化视图存储基于远程表的数据,也可以称为快照。
基于Oracle物化视图日志的数据同步技术研究.pdf
ORACLE物化视图说明
ORACLE9I物化视图
ORACLE物化视图的技术应用.pdf
浅析利用Oracle物化视图对查询优化.pdf
基于Oracle物化视图的查询性能优化.pdf
基于ORACLE物化视图的电力营销系统优化.pdf