Oracle材料视图与分析工作区

时间:2009-10-06 16:09:29

标签: sql oracle plsql views olap

在Oracle中,使用物化视图和分析工作区的优缺点是什么?围绕使用这些功能的最佳做法是什么?

我们有一个OLTP系统,但也想访问报告和交互式决策支持工具中的摘要信息。

2 个答案:

答案 0 :(得分:3)

我从未使用过分析工作区,但MV有一些真正的缺点(虽然我们确实使用它们)。情侣:

  1. 它们实际上就是表格。这意味着他们占用空间。在我们的一些情况中,我们使用它们来帮助访问具有数百万行的表上的远程数据。视图是查询结果和虚拟。 MV是实际的(有真正的行,而不是内存结构)。

  2. 我们遇到的另一个问题是,通常情况下,当MV在刷新时失败时,它将永远不会再尝试刷新。
    对我们来说,我们认为这种情况在两种情况下发生:

    • 在远程系统的情况下,如果在刷新期间删除了与该远程系统的连接,则MV可能永远不会再次刷新,并且可能必须被删除和重建。
    • 如果其中一个表基于更改结构,那么似乎会发生同样的事情。因此,例如,我有一个使用查询“select * from mywork”构建的MV。在某些时候,我发出一个alter命令将列FirstName从varchar2(100)更改为varchar2(150)。那时,我们经常看到MV刷新失败并且永远无法恢复。
  3. 具体细节并不重要,重要的是您必须监控您的MV以确保其数据是最新的。

答案 1 :(得分:1)

我没有使用过分析工作区,因此无法与他们交谈。

但是,物化视图非常有用。它们本质上是缓存的视图结果,您可以执行诸如构建索引之类的操作。根据它们的配置方式(有或没有日志),与“实时”数据相比,它们会变得陈旧,但速度要快得多(取决于您的数据和查询)。

如果您正在处理远程数据(数据库链接),则物化视图允许您在本地缓存数据。如果您对数据进行慢速计算,物化视图可以让您缓存结果(可能是陈旧的)。

物化视图非常方便,只需要明智地实施。