0

我有一个关于 Oracle 物化视图的问题...

我们有两个数据库:

  1. 核心数据库
  2. 报告数据库

报告数据库具有:

  • 指向核心数据库的数据库链接
  • Core 数据库中表的一些同义词
  • 在这些同义词之上定义了许多物化视图。

视图设置为每小时刷新一次。

随着源系统中数据量的增加,我们看到用于实现视图的 CPU 增加。

仔细检查后,似乎视图刷新过程在报告数据库中构建了结果集,并将单个较小的 SQL 语句发送到核心数据库。

其中一些物化视图非常复杂,并且在表之间有很多连接。这导致了数百万条针对 Core 数据库的小 SQL 语句。

我的问题是:最好在核心数据库中创建一个相应的“复杂”视图,并在报告数据库中有一个物化视图,作为一个简单的“SELECT * FROM CORE.MY_MAT_VIEW”

感谢您的任何指示,

干杯,埃文

4

2 回答 2

4

我不会在核心数据库中有任何太复杂的东西。你会给核心数据库增加更多的负载,而且可能会拖拽更多的数据。

您是否考虑过使用针对这些复制表构建的 MV 将核心表复制到报告环境(简单​​复制)。针对核心的 SQL 应该更简单,从核心到报告的数据量应该更小,复杂的 MV 在单个数据库中进行管理。

于 2009-07-16T05:18:13.440 回答
0

如果您的交易率不像您所说的那样好,我会考虑降低您的刷新率。许多报告系统使用 24 小时的报告服务周转时间,用户通常可以进行调整。通过使用介于 1 小时和 24 小时之间的刷新率,您甚至可以看到显着的改进。

于 2010-07-19T20:10:40.217 回答