原文地址:http://hi.baidu.com/gukeming888/blog/item/2682f69481c8237154fb9662.html
物化视图 (Materialized View),在以前的Oracle版本中称为快照(Snapshot)。Oracle的物化视图提供了强大的功能,可以用于预先计算并保存表连接或聚集等 耗时较多的操作的结果,这样在执行查询时,就可以避免进行这些耗时的操作,而从快速地得到结果。
物化视图有很多方面和索引很相似,使用物化视图的目的是为了提高查询性能,物化视图对应用透明,增加和删除物化视图不会影响应用程序中SQL语句的 正确性和有效性,物化视图需要占用存储空间,当基表发生变化时,物化视图也应当刷新。物化视图可以分为以下三种类型:包含聚集的物化视图、只包含连接的物 化视图和嵌套物化视图。
物化视图可以进行分区。而且基于分区的物化视图可以支持分区变化跟踪(PCT)。具有这种特性的物化视图,当基表进行了分区维护操作后,仍然可以进
行快速刷新操作。对于聚集物化视图,可以在GROUP BY列表中使用CUBE或ROLLUP,来建立不同等级的聚集物化视图。
一、先来看看怎么创建一个物化视图:
- create materialized view vi_emp
- refresh force on demand
- as
- select d.dname,e.ename,e.job,e.hiredate
- from scott.dept d,scott.emp e where d.deptno=e.deptno;
物化视图的刷新(refresh)的方法有四种:fast、complete、force和never,Oracle默认采用force方式,如上所示。
fast:刷新采用增量刷新,只刷新自上次刷新以后进行的修改。
complete:刷新对整个物化视图进行完全的刷新。
force:刷新时会去判断是否可以进行快速刷新,如果可以则采用fast方式,否则采 用complete的方式。
never:指物化视图不进行任何刷新。
物化视图的类型有两种:on demand和on commit
on demand:顾名思义,仅在该物化视图“需要”被刷新了,才进行刷新(refresh),即更新物化视图,以保证和基表数据的一致性。
on commit:一旦基表有了commit,即事务提交,则立刻刷新,立刻更新物化视图,使得数据和基表一致。
二、创建定时刷新的物化视图(每天晚上10点刷新):
- create materialized view vi_emp
- refresh force on demand
- start with to_date('03-02-2012 14:50:59', 'dd-mm-yyyy hh24:mi:ss') next to_date(concat(to_char(sysdate + 1, 'yyyy-MM-dd'), ' 22:00:00'), 'yyyy-MM-dd hh24:mi:ss')
- as
- select d.dname,e.ename,e.job,e.hiredate
- from scott.dept d,scott.emp e where d.deptno=e.deptno;
三、删除物化视图:
drop materialized view vi_emp;
相关推荐
Oracle物化视图是一种数据库对象,它存储了查询结果,以提供快速的数据访问,特别适合于需要频繁查询但计算过程复杂或涉及大量数据连接的场景。物化视图的使用可以显著提高查询性能,因为它避免了每次查询时的计算...
Oracle数据库中的物化视图(Materialized View,简称MV)是一种强大的优化工具,它通过预先计算并存储查询结果,提供了一种快速访问复杂查询数据的方式。这种技术在数据仓库环境中尤其有用,因为数据仓库通常涉及...
创建物化视图可以使用 CREATE MATERIALIZED VIEW 语句,例如: ```sql CREATE MATERIALIZED VIEW MV_VIEW AS SELECT * FROM ... ``` 删除物化视图可以使用 DROP MATERIALIZED VIEW 语句,例如: ```sql DROP ...
- **创建物化视图**:使用 `CREATE MATERIALIZED VIEW` 命令来创建物化视图。 - **自定义预构建的物化视图**:用户可以根据自己的需求预先构建物化视图,并对其进行优化。 - **物化视图的索引选择**:选择适当的索引...
在Oracle数据库中,物化视图(Materialized View)是一种特殊的对象,它存储了预计算查询的结果,从而可以提高查询性能。物化视图通常用于汇总查询、复杂查询等场景下,它可以显著减少实时查询所需的时间。 物化视图...
### Oracle 物化视图详解 #### 一、物化视图的概念与作用 物化视图是Oracle数据库中一种特殊的数据对象,它保存的是基于一个或多个表(称为基表)的查询结果集,并且这些结果集是物理上存在的。与普通的视图不同,...
Oracle物化视图是数据库管理系统中的一个重要特性,尤其在处理大量数据和复杂查询的场景下,它可以极大地提升查询性能和数据一致性。物化视图与普通的视图不同,后者是逻辑上的虚表,其内容在查询时动态计算,而物化...
在Oracle数据库中,物化视图(Materialized View, MV)是一种重要的性能优化工具,尤其在数据仓库和决策支持系统中。物化视图预先计算并存储了一个查询的结果,允许快速访问而不是每次需要时重新执行复杂的查询。在...
在Oracle数据库中,物化视图(Materialized View)是一种特殊的数据库对象,它存储的是一个查询的结果集,可以理解为一个预计算的快照。物化视图主要用于提高报表查询性能和实现数据复制等功能。 物化视图的特性...
在Oracle数据库中,物化视图(Materialized View)是一种用于优化查询性能的重要工具。它预先计算并存储了复杂的查询结果,从而在实际查询时能够快速地返回数据,大大提升了查询效率。然而,在创建物化视图的过程中...
- **创建物化视图**:使用CREATE MATERIALIZED VIEW语句创建物化视图。 - **刷新物化视图**:定期或按需刷新物化视图以保持数据的最新状态。 - **查询物化视图**:通过简单的SELECT语句直接查询物化视图。 - **维护...
### Oracle物化视图介绍及应用详解 #### 一、物化视图概念与作用 在Oracle数据库中,物化...总之,Oracle物化视图是提高查询性能的有效工具之一,但其设计和使用需要根据具体的应用场景和需求进行仔细考虑和规划。
- **实现**:使用CREATE MATERIALIZED VIEW命令创建物化视图,并配置适当的刷新选项。 ##### 4. 测试查询重写 - **编写查询**:构造一些复杂的查询语句,尝试使用物化视图进行优化。 - **分析结果**:观察查询执行...
### ORACLE中的物化视图详解 物化视图,作为ORACLE数据库中的一种特殊对象,其实质上是预先计算并存储的查询结果集。它不仅能够提高查询效率,还能在分布式环境中提供本地数据副本,简化远程数据访问,以及在数据...
Oracle数据库中的物化视图(Materialized View, MV)是一种数据对象,它预先计算并存储了一个查询的结果,以便后续查询可以更快地访问这些数据,而无需每次请求时都执行原始查询。物化视图在数据仓库和数据分析场景...
Oracle物化视图是一种在数据库管理系统中用于提升性能和数据整合的重要工具,尤其适用于处理大量数据和复杂的查询。物化视图本质上是一个预先计算并存储的查询结果集,它不仅提供了一种数据缓存的方式,还可以实现...
对于已经存在的物化视图,可以使用ALTER语句来修改其刷新方式,例如`ALTER MATERIALIZED VIEW mv_name REFRESH [FORCE|FAST|COMPLETE|NEVER] [ON DEMAND|ON COMMIT]`。 物化视图对于大数据分析、报表生成和OLAP...
### Oracle物化视图详解 #### 一、物化视图概述 Oracle物化视图是一种特殊类型的数据库对象,其核心功能在于预先计算并存储基于一个或多个表的查询结果,以此来加速后续的查询操作。与普通视图不同,普通视图在...
Oracle物化视图日志是一种强大的数据同步技术,尤其适用于分布式数据库和分布式应用系统之间的数据一致性维护。在当今信息化系统中,随着技术的快速发展,数据的分布性和实时性需求日益增强,数据同步成为了一个关键...