Oracle - 物化视图中的视图

Posted

技术标签:

【中文标题】Oracle - 物化视图中的视图【英文标题】:Oracle - View in Materialized View 【发布时间】:2014-04-21 02:08:31 【问题描述】:

我正在尝试了解如何在物化视图中更改查询。 但是我有一个问题,如果我在物化视图脚本中使用视图,那么当我更改视图脚本时,物化视图会有什么影响? 我是否需要删除 MV 并重新创建它?

如果视图更改,刷新时对现有数据的性能有何影响?

【问题讨论】:

没有。您可以在不重新创建 MV 的情况下更改引用视图,除非您更改任何列。 MV 根据您的查询创建一个表。所以只要只改变逻辑而不改变列,就可以修改引用的视图。 我正在计划更改逻辑,那么已经存储的现有数据将自行修改(刷新数据适应新逻辑)还是仅在新数据中实现?因为如果刷新旧数据,我害怕的是它需要很长时间。 【参考方案1】:

首先我想知道,为什么要在物化视图中创建视图.. 正如我所知,视图和物化视图都是对象的虚拟表,主要区别在于,如果您的对象被删除,您的普通视图将变得无效,但如果是您的物化视图,您可以按原样检索数据存储或占用您的物理内存,在创建物化视图时,oracle 将自动创建一个内部表,该表将保存您的物化视图的数据。

【讨论】:

-1 视图是存储查询,物化视图可以基于表或视图(或者实际上,基于另一个物化视图)。保持 DRY 的原则是有意义的,因此视图上的 MV 可能是一个好主意。

以上是关于Oracle - 物化视图中的视图的主要内容,如果未能解决你的问题,请参考以下文章

实体框架中的 Oracle 物化视图问题

oracle物化视图不会自动更新是怎么回事

Oracle物化视图

如何获得oracle物化视图 定时刷新时 刷新所用的时间 或者是监控 物化视图在jobs中建立的job任务的执行时间

Oracle物化视图梳理

Oracle 物化视图日志