2

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

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

4

2 回答 2

3

我也从未使用过分析工作区,但 MV 有一些真正的缺点(尽管我们确实使用它们)。几件事:

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

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

    • 在远程系统的情况下,如果与该远程系统的连接在刷新期间断开,则 MV 可能永远不会再次刷新并且可能必须断开并重新构建。
    • 如果 MV 基于更改结构的表之一,似乎也会发生同样的事情。因此,例如,我有一个使用查询“select * from mywork”构建的 MV。在某个时候,我发出了一个 alter 命令,将 FirstName 列从 varchar2(100) 更改为 varchar2(150)。那时,我们经常会看到 MV 刷新失败并且永远无法恢复。

细节真的不重要,重要的是你一定要监控你的 MV 以确保它们的数据是最新的。

于 2009-10-08T13:15:51.253 回答
1

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

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

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

物化视图可以非常方便,它们只需要明智地实现。

于 2009-10-06T17:18:13.090 回答