在 Oracle 中,使用物化视图和分析工作空间的优缺点是什么?围绕使用这些功能的最佳实践是什么?
我们有一个 OLTP 系统,但也希望访问报告和交互式决策支持工具中的摘要信息。
我也从未使用过分析工作区,但 MV 有一些真正的缺点(尽管我们确实使用它们)。几件事:
它们实际上是表格。这意味着它们占用空间。在某些情况下,我们使用它们来帮助访问具有数百万行的表上的远程数据。视图是查询结果,并且是虚拟的。MV 是实际的(有真实的行,而不是内存结构)。
我们遇到的其他问题之一是,通常,当 MV 刷新失败时,它永远不会再次尝试刷新。
对我们来说,我们认为这发生在两种情况下:
细节真的不重要,重要的是你一定要监控你的 MV 以确保它们的数据是最新的。
我没有使用过分析工作区,因此无法与他们交谈。
但是,物化视图可能非常有用。它们本质上是缓存的视图结果,您可以在其上执行诸如构建索引之类的操作。根据它们的配置方式(有或没有日志),与“实时”数据相比,它们可能会变得陈旧,但速度要快得多(取决于您的数据和查询)。
如果您正在处理远程数据(数据库链接),物化视图可以让您在本地缓存数据。如果您对数据进行缓慢的计算,物化视图可以让您缓存结果(可能是陈旧的)。
物化视图可以非常方便,它们只需要明智地实现。