一、物化视图
物化视图是包括一个查询结果的数据库对象,它是远程数据的本地副本,或者用来生成基于数据表求和的汇总表。物化视图存储基于远程表的数据,也可以称为快照。
对于数据仓库:创建的物化视图通常情况下是
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 物化视图创建和使用 Oracle 物化视图是一种预先计算并保存表连接或聚集等耗时较多的操作的结果,以提高查询性能。物化视图对应用程序透明,不会影响应用程序的正确性和有效性,但需要占用存储空间。基表发生...
"Oracle 物化视图增量刷新的应用研究" Oracle 物化视图是 Oracle 公司提供的一种新技术,可以解决很多普通逻辑视图无法完成的功能。物化视图操作简单,支持增量刷新及全量刷新,可以支持复杂的表连接、聚合函数等...
"利用ORACLE物化视图建立报表数据库.pdf" 本文主要介绍了利用ORACLE物化视图建立报表数据库的方法和原理。报表数据库是指独立于生产数据库的数据库,用于存储和管理报表数据。通过建立报表数据库,可以实现工作负荷...
### Oracle 物化视图详解 #### 一、物化视图的概念与作用 物化视图是Oracle数据库中一种特殊的数据对象,它保存的是基于一个或多个表(称为基表)的查询结果集,并且这些结果集是物理上存在的。与普通的视图不同,...
Oracle物化视图是一种在数据库中预先计算并存储视图查询结果的数据对象,它与普通的视图不同,普通视图在查询时动态地基于基表数据生成结果,而物化视图则拥有自己的物理存储,提供了对数据的快速访问。在本篇循序渐...
Oracle物化视图是数据库管理系统中的一个重要特性,尤其在处理大量数据和复杂查询的场景下,它可以极大地提升查询性能和数据一致性。物化视图与普通的视图不同,后者是逻辑上的虚表,其内容在查询时动态计算,而物化...
Oracle 物化视图 Oracle 物化视图是数据库对象,存储远程表的数据副本,也可以称为快照。物化视图可以查询表、视图和其他物化视图。通常情况下,物化视图被称为主表(在复制期间)或明细表(在数据仓库中)。 创建...
### Oracle物化视图介绍及应用详解 #### 一、物化视图概念与作用 在Oracle数据库中,物化视图(Materialized View, MV)是一种预计算并存储的查询结果,它能够显著提高复杂查询的性能。通常情况下,复杂的查询涉及到...
Oracle数据库中的物化视图(Materialized View,简称MV)是一种强大的优化工具,它通过预先计算并存储查询结果,提供了一种快速访问复杂查询数据的方式。这种技术在数据仓库环境中尤其有用,因为数据仓库通常涉及...
Oracle物化视图日志是一种强大的数据同步技术,尤其适用于分布式数据库和分布式应用系统之间的数据一致性维护。在当今信息化系统中,随着技术的快速发展,数据的分布性和实时性需求日益增强,数据同步成为了一个关键...
【Oracle物化视图】是Oracle数据库中一种特殊的数据对象,它存储了查询结果集的物理副本,可以提供对远程数据的快速访问和一致性保证。物化视图的主要优点在于,它可以减少对远程数据源的访问,提高数据的本地可用性...
### ORACLE 物化视图详解 #### 一、物化视图概述 在Oracle数据库中,物化视图(Materialized View)是一种特殊的数据库对象,它存储的是一个查询的结果集,可以理解为一个预计算的快照。物化视图主要用于提高报表...
### Oracle物化视图详解 #### 一、物化视图概述 Oracle物化视图是一种特殊类型的数据库对象,其核心功能在于预先计算并存储基于一个或多个表的查询结果,以此来加速后续的查询操作。与普通视图不同,普通视图在...
Oracle物化视图是Oracle数据库中一种非常重要的特性,它提供了数据的一致性视图,通常用于实现数据的异步复制。本配置指导书主要针对Oracle高级复制中的物化视图,旨在帮助用户理解并成功配置物化视图,以满足在实际...
### ORACLE物化视图详解 #### 执行概要与简介 在当今的数据密集型世界中,无论是数据仓库、数据中心还是在线事务处理(OLTP)系统,都面临着一个共同的挑战:如何高效地检索和展示庞大的信息量。Oracle物化视图作为...
Oracle物化视图是数据库性能优化的重要工具,尤其在处理大量数据查询和统计工作中显得尤为重要。物化视图,也称作快照,是数据库在某一时间点对目标表(主控)的副本,可以是主站点上的主表,也可以是物化视图站点上...
Oracle物化视图是一种在数据库管理系统中用于提升性能和数据整合的重要工具,尤其适用于处理大量数据和复杂的查询。物化视图本质上是一个预先计算并存储的查询结果集,它不仅提供了一种数据缓存的方式,还可以实现...
【Oracle物化视图实现数据同步复制】 Oracle物化视图是一种高级的数据管理工具,用于在数据库间实现数据的同步复制。物化视图的概念首次出现在Oracle8i中,它是一个实际存储在数据库中的预计算结果集,可以提高查询...