Oracle

Oracle 12C 中應用程序表歸檔的最佳實踐指南

  • March 11, 2020

數據庫環境:Oracle 12C 企業版

  • 我在應用程序模式中有一個表,在歷史模式中有相應的歷史表。
  • 應用程序表有大約 10 個小的 varchar2 列,最大行大小為 200 字節。
  • 每週一次(稱為一個週期),Oracle 調度程序作業將執行一個儲存過程,從應用程序表中提取數據並插入到相應的歷史表中。
  • 除了應用程序欄位之外,歷史記錄表還將具有年份和期間編號列。
  • 在將行傳輸到歷史表(範圍之外)後,一個單獨的非同步程序會清除應用程序表
  • 歷史表將包含來自相應應用程序表的一年數據。每年都會創建新的歷史表。
  • 歷史表數據主要通過應用程序id列和其他條件(包括年份和期間)來查詢

目前我沒有考慮分區表設計……考慮到上述設計目標,我正在考慮設計我的表和載入儲存過程的以下幾點 -

  1. 在表空間級別為歷史模式設置壓縮
  2. 帶有附加提示的直接路徑插入
  3. 使索引在載入前不可用,在載入後可用

我的問題:尋找有關我正在考慮的設計的建議。

您可以使用閃回數據存檔來跟踪表的先前版本。使用該功能,您可以在任何時間點(在您的保留期內)查詢該表。這聽起來確實比您正在建構的方法更靈活(重新發明輪子)。

1 和 2 確實聽起來非常簡單的好主意。3 取決於您載入的數據量。不可用的索引會在載入期間損害您的應用程序。我會考慮將每個負載放入一個單獨的分區中。然後一年後很容易擺脫數據 - 只需刪除整個分區。而且我假設您經常會查看特定時間點的數據——在這種情況下,如果您正確建構 SQL,優化器可以使用分區修剪。

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