2011-09-26 65 views
4

我們剛遇到一個問題,物化視圖不刷新,並給出編譯錯誤。其中一位高級開發人員表示,他只是想通過告訴蟾蜍編譯物化視圖來解決問題。編譯和刷新物化視圖有什麼區別?

所以我的問題很簡單:刷新和「編譯」之間有什麼區別?

回答

7

刷新物化視圖是數據操作。 MV中的數據按照創建視圖時指定的那樣更新,例如快速刷新,完整刷新等。

當您編譯MV時,Oracle會重新驗證視圖所基於的查詢。由於MV所基於的一個或多個基礎對象發生變化,您的MV可能無效。

+0

重新編譯是否也刷新數據,因爲現在查詢可能由於其他對象中的更改而具有不同的結果? – jpmc26

5

A 刷新更新物化視圖所保存的數據。如果物化視圖的定義無效,則無法完成此操作。

A compile驗證物化視圖的定義,即SQL有效並且它依賴的對象存在。