Oracle

物化視圖:什麼是更新觸發器屬性?

  • December 12, 2020

我在 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 中被取消支持。

引用自:https://dba.stackexchange.com/questions/281324