高手讨论Oracle物化视图

数据库 Oracle
这里介绍Oracle物化视图可以分为以下三种类型:包含聚集的物化视图;只包含连接的物化视图;嵌套物化视图。三种物化视图的快速刷新的限制条件有很大区别,而对于其他方面则区别不大。

Oracle经过长时间的发展,很多用户都很了解Oracle物化视图了,这里我发表一下个人理解,和大家讨论讨论。Oracle物化视图提供了强大的功能,可以用于预先计算并保存表连接或聚集等耗时较多的操作的结果,这样,在执行查询时,就可以避免进行这些耗时的操作,而从快速的得到结果。

Oracle物化视图有很多方面和索引很相似:使用物化视图的目的是为了提高查询性能;物化视图对应用透明,增加和删除物化视图不会影响应用程序中SQL语句的正确性和有效性;物化视图需要占用存储空间;当基表发生变化时,物化视图也应当刷新。

Oracle物化视图可以分为以下三种类型:包含聚集的物化视图;只包含连接的物化视图;嵌套物化视图。三种物化视图的快速刷新的限制条件有很大区别,而对于其他方面则区别不大。创建物化视图时可以指定多种选项,下面对几种主要的选择进行简单说明:

创建方式(Build Methods):包括BUILD IMMEDIATE和BUILD DEFERRED两种。BUILD IMMEDIATE是在创建物化视图的时候就生成数据,而BUILD DEFERRED则在创建时不生成数据,以后根据需要在生成数据。默认为BUILD IMMEDIATE。

查询重写(Query Rewrite):包括ENABLE QUERY REWRITE和DISABLE QUERY REWRITE两种。分别指出创建的物化视图是否支持查询重写。查询重写是指当对物化视图的基表进行查询时,Oracle会自动判断能否通过查询物化视图来得到结果,如果可以,则避免了聚集或连接操作,而直接从已经计算好的物化视图中读取数据。默认为DISABLE QUERY REWRITE。

刷新(Refresh):指当基表发生了DML操作后,物化视图何时采用哪种方式和基表进行同步。刷新的模式有两种:ON DEMAND和ON COMMIT。ON DEMAND指物化视图在用户需要的时候进行刷新,可以手工通过DBMS_MVIEW.REFRESH等方法来进行刷新,也可以通过JOB定时进行刷新。 ON COMMIT指出物化视图在对基表的DML操作提交的同时进行刷新。刷新的方法有四种:FAST、COMPLETE、FORCE和NEVE*。**ST刷新采用增量刷新,只刷新自上次刷新以后进行的修改。COMPLETE刷新对整个物化视图进行完全的刷新。如果选择FORCE方式,则Oracle在刷新时会去判断是否可以进行快速刷新,如果可以则采用FAST方式,否则采用COMPLETE的方式。NEVER指物化视图不进行任何刷新。默认值是FORCE ON DEMAND。

在建立物化视图的时候可以指定ORDER BY语句,使生成的数据按照一定的顺序进行保存。不过这个语句不会写入Oracle物化视图的定义中,而且对以后的刷新也无效。

【编辑推荐】

  1. 简单谈谈Oracle SQL调优
  2. 深谈Oracle Freelist经验
  3. 简单接触一下Oracle扩展
  4. 浅谈Oracle Spatial几何结构
  5. 理论分析Oracle SQL语法
责任编辑:佚名 来源: 博客
相关推荐

2009-05-06 11:09:10

Oracle物化视图数据库

2009-11-17 16:47:09

Oracle物化视图日

2010-11-19 10:11:49

Oracle物化视图

2010-05-04 10:20:17

Oracle物化视图

2010-08-02 13:25:23

DB2物化视图

2010-07-30 17:46:46

DB2物化视图

2010-08-20 13:33:50

DB2物化视图

2011-08-01 18:42:40

分区维度物化视图

2010-11-02 11:56:36

DB2物化视图

2010-07-27 14:26:08

DB2数据库物化视图

2010-08-19 17:17:08

DB2数据库

2009-11-19 14:34:23

Oracle Exis

2023-09-18 07:23:45

2010-08-13 10:29:35

DB2数据库

2009-11-20 15:19:29

Oracle Agil

2009-11-13 16:53:12

Oracle文档

2009-11-11 09:13:11

Oracle索引扫描

2009-11-17 10:20:01

Oracle Spat

2010-05-04 18:14:50

Oracle 性能工具

2009-10-29 16:57:05

Oracle传输表空间
点赞
收藏

51CTO技术栈公众号