Oracle
物化視圖:什麼是更新觸發器屬性?
我在 Oracle 18c 數據庫中創建了一個物化視圖。
當我查看 Toad 中物化視圖的Info選項卡時,我看到有一個名為Update Trigger的屬性。
更新觸發器屬性代表什麼?
這些是稱為可更新快照的古老特徵的遺跡,後來成為可更新的物化視圖。
最初的物化視圖被稱為快照。和的值來自 的
Update Trigger
和列,這是最後一次在 Oracle 8i 中正確記錄的視圖:ALL_SNAPSHOTS。該視圖的 9.0 文件實際上已損壞。Update Log``UPDATE_TRIG``UPDATE_LOG``ALL|DBA|USER_SNAPSHOTS
Oracle 7:快照站點複製
可更新的快照架構
除了為描述的只讀快照創建的對象之外
$$ * $$,當您創建可更新快照時,會在快照站點創建兩個附加對象:
- Oracle 創建一個名為 USLOG$_snapshot_name 的表來儲存快照中更新的行的 ROWID 和時間戳。 在快照刷新
首次使用日誌之前,時間戳列不會更新。
- Oracle 在快照基表上創建一個 AFTER ROW 觸發器,以將更新和刪除行的 ROWID 和時間戳插入到可更新的快照日誌中。觸發器名為 USTRG$_snapshot_name。
在 Oracle 8i 中,快照被重命名為物化視圖,可更新的快照變成了可更新的物化視圖。以上允許使用者對快照/物化視圖執行 DML 操作,並且這些更改可以複製回主表。
可更新的物化視圖是稱為高級複製的功能的一部分。這是我在真實數據庫中還沒有看到的功能。大約 6 年前,我發現了一個 10.2 的客戶數據庫,其中有人在 2008 年嘗試設置此功能但未能成功。我從未在其他任何地方見過這種情況。
高級複製在 12.1 中被棄用,在 12.2 中被取消支持。