【问题标题】:Oracle materialized views or aggregated tables in datawarehouse数据仓库中的 Oracle 物化视图或聚合表
【发布时间】:2012-05-23 18:42:32
【问题描述】:

oracle(11g) 的物化视图是数据仓库中聚合表的良好实践吗?

我们有每天替换 2 个月数据的 DW 流程。有时这意味着每个月的演出很少(约 10 万行)。 最重要的是物化视图,在夜间数据传输周期后刷新。 我的问题是创建聚合表而不是 MV 会更好吗?

【问题讨论】:

  • 如果您能解释一下您考虑更换 MV 的原因会很有帮助;我认为某些问题会促使您寻找替代方案,这对人们了解您要解决的问题很有用。
  • 我不确定这是否有用。我有一个案例(几年前),在 Oracle 9i 中的 MV 体验不佳。查询重写搞砸了很多,查询时间太长。我认为这在几乎每个 DW 中都很常见,我想知道是否有人之前检查过它,它是否稳定并提供比聚合表更好的性能。
  • 您现在是不是性能不佳,系统不稳定?如果你这样做了,那么你当然应该调查原因,但另一方面,如果一切都运行良好,那么你的时间可能最好花在其他地方。在问题存在之前解决问题很困难:-)
  • 在4小时的夜间负载中,2小时是MV刷新。没有问题,只是想让它接近 2 小时。

标签: oracle11g data-warehouse materialized-views


【解决方案1】:

我认为聚合表可能有益的一种情况是聚合可以有效地与原子级数据负载相结合,最好用一个例子来说明。

假设您每天通过分区交换将大量数据加载到事实表中。使用分区更改跟踪的物化视图刷新将在分区交换期间或之后触发,它将扫描已修改的分区并将更改应用到 MV。

作为要与事实表分区交换的表的一部分,您还可以使用 CUBE/ROLLUP 计算各个级别的聚合,并使用多表插入来加载表然后您可以将交换分区到一个或多个聚合表中。通过避免重新扫描原子级数据,这不仅可能在本质上更有效,而且您的聚合是在事实表分区交换之前计算的,因此如果出现任何问题,您可以暂停对事实表本身的修改。

以后可能会出现其他想法...如果其他人有想法,我会以社区 Wiki 的形式打开答案。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-10-11
    • 1970-01-01
    • 2021-05-04
    • 2012-07-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多