Oracle 10g R2特性之數據倉庫和集成特性 |
發布時間: 2012/7/13 15:17:07 |
分區更改跟蹤:不需要 MV 日志
要了解此增強功能,首先必須了解物化視圖 (MV) 刷新過程中的分區修整概念。 假設基于列 ACC_MGR_ID 對表 ACCOUNTS 進行了分區,每個 ACC_MGR_ID 值一個分區。您根據 ACCOUNTS 創建了一個名為 ACC_VIEW 的 MV,該 MV 也根據列 ACC_MGR_ID 進行了分區,每個 ACC_MGR_ID 一個分區,如下圖所示: 假設已經更新了表 ACCOUNTS 中的記錄,但只在分區 P1 中進行了此更新。要快速刷新此 MV,您只需刷新分區 P1 而非整個表,這里正是與 ACC_MGR_ID 相關的數據所在的分區。Oracle 自動執行此任務,通過一個名為分區更改跟蹤 (PCT) 的特性跟蹤對分區的更改。但有一個問題需稍加注意:要在快速刷新的過程中啟用 PCT,必須創建 MV 日志,當表中的行發生變化會填充這些日志。發出刷新命令后,刷新進程將讀取 MV 日志以識別這些更改。 不用說,該要求增加了操作的總執行時間。此外,附加的插入操作將消耗 CPU 周期和 I/O 帶寬。 幸好,在 Oracle 數據庫 10g 第 2 版中,PCT 不需要 MV 日志即可工作。讓我們看一看它的作用方式。首先,確認表 ACCOUNTS 中沒有 MV 日志。
現在,更新該表中的某個記錄。
該記錄位于分區 P3 中。 現在,您就可以刷新此 MV 了。但首先記錄表 ACCOUNTS 所有段的段級統計信息。稍后,您將使用這些統計信息了解使用了哪些段。
本文出自:億恩科技【www.artduck.net】 |