原文地址:http://blog.csdn.net/lu_yongchao/archive/2009/08/11/4432710.aspx
可在报表组应用)
物化视图是包括一个查询结果的数据库对像,它是远程数据的的本地副本,或者用来生成基于数据表求和的汇总表。物化视图存储基于远程表的数据,也可以称为快照。
物化视图可以查询表,视图和其它的物化视图。主要用在数据仓库和决策支持系统。
通常情况下,物化视图被称为主表(在复制期间)或明细表(在数据仓库中)。
对于复制,物化视图允许你在本地维护远程数据的副本,这些副本是只读的。如果你想修改本地副本,必须用高级复制的功能。当你想从一个表或视图中抽取数据时,你可以用从物化视图中抽取。
对于数据仓库,创建的物化视图通常情况下是聚合视图,单一表聚合视图和连接视图。
物化视图把他的物理结构存储在自己的段中,该段可以被索引和分区。
查询不必完全匹配用来创建物化视图的SQL语句,优化程序可以动态重写一个与原定义相近的查询,以便物化视图用来代替实际的表,这种查询重写自动发生,对用户是透明的。(9.0.1 A89852-02的29章详述了跟踪是否使用了物化视图的过程)
使用物化视图前的几个配置步骤
1)确定那些语句要创建物化视图。(Oracle Summary Advisor工具,9.0.1 A90237-01 第16章)
2)决定是否要保持视图与基础表数据同步。
如果不同步,可选择如下三种刷新方式:
- COMPLETE:刷新启动时,先truncate物化视图,再从基础表重新插入填充数据。
- FAST:只刷新基础表上次刷新以来改变了的数据。使用视图的日志数据或ROWID完成。
- FORCE:默认的方式。先使用FAST,不行就使用COMPLETE方式。
3)设置init.ora的参数:
- JOB_QUEUE_PROCESSES,必须设置大于 1。
- QUERY_REWRITE_ENABLED,设置为TRUE时,允许动态重写查询。
- QUERY_REWRITE_INTEGRITY,确定访问物化视图时数据一致性要遵守的程度。
- OPTIMIZER_MODE,必须设置成CBO的某种方式。
使用一个物化视图,用户只需在基础表上拥有权限即可。
创建物化视图
SQL>create materialized view emp_by_district
Tablespace mview_data
Build immediate
Refresh fast
Enable query rewrite
As
Select d.id,count(e.last_name) from distributor dist,district d,employee e
Where e.id = dist.manager_id
And d.id dist.district_id
Group by d.id;
Build immediate一共有三个选项:
1) Build immediate:建立物化视图,并使用当前命令执行的数据马上填充视图数据。
2) Build deferred:只建立物化视图,在第一次刷新之间不填充数据。
3) No prebuilt table,使用事先已存在的,已含有视图定义中有现有数据的表,而不是建立一个新结构来保存数据。
如果是refresh fast on commit或refresh complete on commit创建的,则在基础表提交的时候都会得到刷新。
启用或禁用物化视图,需要有query rewrite或global query rewrite权限。
刷新物化视图
- 自动刷新
1) 使用commit选项。
2) 使用dbms_mview安排自动刷新时间。
- 手工刷新
SQL>execute dbms_mview.refresh(‘EMP_BY_DISTRICT’); --刷新指定的物化视图
SQL>execute dbms_mview.refresh_defresh_dependent(‘EMPLOYEE’);――刷新利用了该表的所有物化视图
SQL>execute dbms_mview.refresh_all_mviews;――刷新该模式中,自上次刷新以来,未得到刷新的所有物化视图。
禁用物化视图
- 修改init.ora参数的query_rewrite_enabled参数设置成flase,重启实例。
- 使用alter system set query_rewrite_enabled = flase;动态修改。
- 使用alter session set query_rewrite_enabled = flash;修改会话内。
- 使用 norewrite提示。
删除物化视图
SQL>drop materialized view emp_by_district;
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/lu_yongchao/archive/2009/08/11/4432710.aspx
分享到:
相关推荐
Oracle 物化视图创建和使用 Oracle 物化视图是一种预先计算并保存表连接或聚集等耗时较多的操作的结果,以提高查询性能。物化视图对应用程序透明,不会影响应用程序的正确性和有效性,但需要占用存储空间。基表发生...
Oracle物化视图是一种数据库对象,它存储了查询结果,以提供快速的数据访问,特别适合于需要频繁查询但计算过程复杂或涉及大量数据连接的场景。物化视图的使用可以显著提高查询性能,因为它避免了每次查询时的计算...
"Oracle 物化视图增量刷新的应用研究" Oracle 物化视图是 Oracle 公司提供的一种新技术,可以解决很多普通逻辑视图无法完成的功能。物化视图操作简单,支持增量刷新及全量刷新,可以支持复杂的表连接、聚合函数等...
Oracle物化视图是一种在数据库中预先计算并存储视图查询结果的数据对象,它与普通的视图不同,普通视图在查询时动态地基于基表数据生成结果,而物化视图则拥有自己的物理存储,提供了对数据的快速访问。在本篇循序渐...
### Oracle 物化视图详解 #### 一、物化视图的概念与作用 物化视图是Oracle数据库中一种特殊的数据对象,它保存的是基于一个或多个表(称为基表)的查询结果集,并且这些结果集是物理上存在的。与普通的视图不同,...
Oracle 物化视图 Oracle 物化视图是数据库对象,存储远程表的数据副本,也可以称为快照。物化视图可以查询表、视图和其他物化视图。通常情况下,物化视图被称为主表(在复制期间)或明细表(在数据仓库中)。 创建...
"利用ORACLE物化视图建立报表数据库.pdf" 本文主要介绍了利用ORACLE物化视图建立报表数据库的方法和原理。报表数据库是指独立于生产数据库的数据库,用于存储和管理报表数据。通过建立报表数据库,可以实现工作负荷...
Oracle数据库中的物化视图(Materialized View,简称MV)是一种强大的优化工具,它通过预先计算并存储查询结果,提供了一种快速访问复杂查询数据的方式。这种技术在数据仓库环境中尤其有用,因为数据仓库通常涉及...
Oracle物化视图是数据库管理系统中的一个重要特性,尤其在处理大量数据和复杂查询的场景下,它可以极大地提升查询性能和数据一致性。物化视图与普通的视图不同,后者是逻辑上的虚表,其内容在查询时动态计算,而物化...
### ORACLE9I 物化视图 #### 执行概览 随着数据库技术的发展,无论是数据仓库、数据集市还是在线事务处理(OLTP)系统,都承载着大量的等待被发现和理解的信息。然而,在海量数据中及时准确地查找并呈现这些信息...
### Oracle物化视图详解 #### 一、物化视图概述 Oracle物化视图是一种特殊类型的数据库对象,其核心功能在于预先计算并存储基于一个或多个表的查询结果,以此来加速后续的查询操作。与普通视图不同,普通视图在...
Oracle物化视图日志是一种强大的数据同步技术,尤其适用于分布式数据库和分布式应用系统之间的数据一致性维护。在当今信息化系统中,随着技术的快速发展,数据的分布性和实时性需求日益增强,数据同步成为了一个关键...
### ORACLE 物化视图详解 #### 一、物化视图概述 在Oracle数据库中,物化视图(Materialized View)是一种特殊的数据库对象,它存储的是一个查询的结果集,可以理解为一个预计算的快照。物化视图主要用于提高报表...
### ORACLE使用物化视图和查询重写功能 #### 一、概述 在Oracle数据库中,物化视图和查询重写功能是提高查询效率和简化数据仓库管理的重要工具。物化视图是一种预计算的数据集合,它可以存储查询的结果集,而查询...
物化视图是 Oracle 中的一种性能优化技术,它可以将复杂的查询结果存储在一个物化视图中,以便快速地检索数据。物化视图有三种刷新方式:COMPLETE、FAST 和 FORCE。 COMPLETE 刷新方式会删除表中所有的记录,然后...
### Oracle如何根据物化视图日志快速刷新物化视图 #### 一、物化视图及其日志介绍 在Oracle数据库中,物化视图(Materialized View)是一种特殊的对象,它存储了预计算查询的结果,从而可以提高查询性能。物化视图...
Oracle物化视图是Oracle数据库中一种非常重要的特性,它提供了数据的一致性视图,通常用于实现数据的异步复制。本配置指导书主要针对Oracle高级复制中的物化视图,旨在帮助用户理解并成功配置物化视图,以满足在实际...
总结来说,Oracle物化视图是一种强大的性能优化工具,通过预先计算和存储查询结果,提高查询效率,减轻网络压力,支持大规模部署,并能在离线环境下提供服务。正确使用物化视图可以有效地提升数据库系统的整体性能,...