love wife love life —Roger的Oracle/MySQL/PostgreSQL数据恢复博客

Phone:18180207355 提供专业Oracle/MySQL/PostgreSQL数据恢复、性能优化、迁移升级、紧急救援等服务

Oracle materizlized view Study (2)

本站文章除注明转载外,均为本站原创: 转载自love wife love life —Roger的Oracle/MySQL/PostgreSQL数据恢复博客

本文链接地址: Oracle materizlized view Study (2)

上一篇对oracle中物化视图有了一些基本了解,知道物化视图日志的创建方式。在这篇文章中,将重点讲解
物化视图的刷新方式,这也是一个比较难的知识点,和大家以前学习。因为很长一段时间不用mv,说真的,我
基本上都忘的差不多了,最近的项目涉及到物化视图的一个几个库(超过3T)的迁移,所以温习下。

我们通过查看试图dba_mviews的REFRESH_METHOD字段可以发现该自动有如下几种属性,换句话说也就是说
物化视图有如下几种刷新方式:

简单总结为如下几点:

immediate:创建mv时就生成数据了,也就是在创建mv时就会进行一次完全刷新,同步数据。默认方式。
deferred: 在创建mv时不生成数据,后面跟你的操作实际需要才生成数据,换句话说,使用这种方式创建mv时,当你查询
mv时数据是空的,比如你手工刷新以后,才能查到数据。

prebuilt: 创建时需要先存在跟物化视图存在相同的对象,不然会报错ora-12059。

如下例子:

—conn killdb/killdb

由于通常是用快速刷新,所以这里重点描述下快速刷新。要创建快速刷新的物化视图,需要满足一些列条件:

如果是包含子查询的物化视图,就更复杂了。看下面的例子:

关于物化视图快速刷新涉及子查询的情况,有一些限制,如下(来自官方文档):

如果不满足条件,可能包如下类似的很多错误:

另外,关于快速刷新,还涉及到很多内容,如下内容来自老杨的博客:

关于物化视图的内容非常多,详细的东西参考官方文档,老杨的这部分内容其实都有些老了,部分是9i的。
另外还有MV GROUP等等,不多说了。

2 Responses to “Oracle materizlized view Study (2)”

  1. Dong_2 Says:
  2. Rookie Says:

    9.如果包含inline views、outer joins、self joins或grouping set,则兼容性的设置必须在9.0以上;
    请问兼容性如何设置?

Leave a Reply

You must be logged in to post a comment.