監査セットと履歴セットの違い

  • リリースバージョン: Zurich
  • 更新日 2025年07月31日
  • 所要時間:2分
  • 監査 [sys_audit]、履歴セット [sys_history_set]、および履歴 [sys_history_line] テーブルは同じデータを格納しますが、目的やデータの管理方法は異なります。

    監査 [sys_audit] テーブル

    監査 [sys_audit] テーブルには、すべてのレコードの履歴情報が格納されます。これらのレコードは、アドミニストレーターが監査済みレコードの履歴を常に追跡できるように、永久に保持されるようになっています。監査レコードの数は時間の経過とともに増加するため、履歴情報について監査テーブルを直接クエリーするのは非効率的です。実際に履歴情報を表示する必要がある、より少量のサブセットレコードでのみクエリーを実行する方がはるかに効率的です。

    履歴セット [sys_history_set] テーブル

    履歴セット [sys_history_set] テーブルは、監査対象テーブルのどのレコードに履歴情報があるかを識別します。履歴 [sys_history_line] テーブルには、発生したフィールド値に加えた実際の変更が保存されます。
    • ユーザーがレコードを作成するか、その履歴をリクエストすると、必要に応じて、監査テーブルから履歴セットと履歴レコードが自動的に生成されます。
    • 履歴セットと履歴レコードには、システム内のすべての変更の完全な履歴ではなく、ユーザーが履歴情報の作成やリクエストを行った、レコードの履歴情報の最近のサブセットのみが含まれます。
    • 監査データに加えて、履歴セットには、レコードの挿入中に設定された情報 (ジャーナルフィールドエントリなど) も含まれます。レコードの作成前に作成したジャーナルフィールドエントリは、レコード作成時に作成されたジャーナルエントリと同じ方法で処理されます。これらのジャーナルエントリは、関連レコード自体と同じ作成時刻と作成者のデータで履歴セットに表示されます。

    履歴セットと履歴レコードは次のように制限されます。

    • テーブルクリーナーを使用して、30 日間更新されていない履歴セットレコードを削除できます。
    • テーブルローテーションを使用して、4 つの履歴テーブルを 7 日ごとにローテーションします。28 日以上経過した履歴レコードは削除されます。

    後日、履歴情報が再度必要になった場合は、監査ソースレコードから再生成することができます。

    履歴セットレコードが生成された後は、コンテキストメニューの [履歴] で監査レコードではなく履歴セットが使用されます。ユーザーの側から捉えた場合、同じ履歴データを同じユーザーインターフェイスで使用できますが、情報の保存方法は異なります。