2012-05-16 40 views
0

Oracle(11g)的物化视图是数据仓库中汇总表的良好实践吗?Oracle物化视图或数据仓库中的汇总表

我们有DW流程,每天取代2个月的数据。有一段时间,这意味着每个月只有几个Gig(约10万行)。 其中最重要的是物化视图,在数据传输的夜间循环之后刷新。 我的问题是创建聚合表而不是MVs会更好吗?

+0

如果你能解释一下你为什么要考虑更换MV,这将是有帮助的;我认为有些问题促使你寻找替代方案,这对人们理解你想解决什么问题很有用。 – Pondlife

+0

我不确定这是否有帮助。我在Oracle 9i中遇到了一些(多年前)具有不良MVs经验的案例。查询重写很麻烦,查询时间太长。 我认为这是几乎每个数据仓库中的一个常见案例,我想知道是否有人在之前检查过它,如果它稳定并且性能比汇总表更好。 – Gluz

+0

你现在性能不好,系统不稳定吗?如果你这样做,那么当然你应该研究为什么,但另一方面,如果一切运行良好,那么你的时间可能会更好地花在其他地方。在问题存在之前解决问题很困难:-) – Pondlife

回答

1

我认为汇总表可能有益的一种情况是汇总可以与原子级数据加载有效结合的位置,这可以通过示例进行最佳说明。

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

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

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