2012-05-16 80 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的形式打開答案。