2015-05-22 70 views
0

美好的一天, 技術上可以在master數據庫(而不是實體表)中創建針對另一個視圖的實例化視圖嗎? 我的DBA建議oracle不允許針對視圖創建物化視圖日誌。海事組織的觀點與表格幾乎相同,所以它應該是可能的。 有沒有人成功完成這個任務(Oracle 11g)。oracle 11g針對另一個視圖的物化視圖

+2

你試過了嗎?如果是的話,你會得到一個錯誤? –

+0

也許你的問題比你想象的更嘮叨。如何同步物化視圖以及如何更快地實現物化視圖有多種方法。也許你的DBA因爲一些快速刷新功能而抱怨。 – ibre5041

回答

0

documentation是這個相當清楚的:在物化視圖日誌的主表

限制

以下限制適用掌握的表物化視圖日誌:

  • 您無法爲臨時表或視圖創建實例化視圖日誌。

  • 您無法爲具有虛擬列的主表創建物化視圖日誌。

視圖是不幾乎相同的表。這是一個存儲查詢,因此它沒有存儲空間,DML只能通過替代觸發器來實現。它沒有注意到基礎數據變化的基礎。

想想看,爲了支持一個視圖日誌 - 即使是對一個簡單的單表視圖 - 視圖基表的更新也必須檢查是否有任何視圖;檢查是否有任何物化視圖日誌;然後確定是否需要記錄更改 - 這意味着執行每個視圖的查詢並查看整個結果集。想象一下,更改爲基礎表。然後設想一個更復雜的查看查詢,包含聚合或多個表格等。

您應該實際實現視圖查詢以決定是否需要記錄更改,以更新實際的物化視圖。這部分是實際物化視圖的部分原因 - 停止您必須通過跟蹤主表上的更改來重複執行昂貴的視圖查詢。

您必須在(普通)視圖的基表上創建物化視圖日誌。

+0

美好的一天Alex,感謝您的詳細回覆。完全理解。謝謝。 –