ホームページ > データベース > mysql チュートリアル > パフォーマンスを維持しながら SQL Server の履歴データの変更を効率的に監査するにはどうすればよいですか?

パフォーマンスを維持しながら SQL Server の履歴データの変更を効率的に監査するにはどうすればよいですか?

Patricia Arquette
リリース: 2024-12-29 22:56:11
オリジナル
383 人が閲覧しました

How Can I Efficiently Audit Historical Data Changes in SQL Server While Maintaining Performance?

SQL Server の履歴変更の監査: 総合ガイド

質問:

方法パフォーマンスを維持しながら、データベース内の変更履歴を効果的に保存および追跡します。柔軟性?

背景:

システムは、現在のデータ行を含む Table-A と履歴データを保存する Table-A-History の 2 つのテーブルで構成されています。 。 Table-A-History に履歴データを保持しながら、最新の行が常に Table-A に存在するようにする必要があります。

方法とパフォーマンスの考慮事項:

方法 1: 現在の行をテーブル A からテーブル A に移動するTable-A-History

新しいデータ行が使用可能になったら、既存の現在の行を Table-A から Table-A-History に移動します。次に、新しいデータで Table-A を更新します。

利点:

  • 小さく効率的な Table-A を維持します。
  • 最小限インデックスのオーバーヘッド表-A.

欠点:

  • 追加の挿入と削除が必要です。
  • 履歴レポートには結合が必要です。

方法 2: 更新Table-A と Table-A-History への新しい行の挿入

新しいデータ行が使用可能になったら、Table-A の既存の行を更新し、Table-A-History に新しい行を挿入します。

利点:

  • 履歴レポートは、何も必要とせずに簡単に実行できます。

欠点:

  • Table-A は履歴データが増加するにつれて大きくなる可能性があります。
  • Table- のインデックスのオーバーヘッドできるのは

考慮すべき追加の解決策:

  • トリガーによる監査: トリガーを使用して DML をキャプチャする (挿入、更新) 、削除)変更を行い、別の監査に保存しますtable.
  • 有効日付: 行を削除する代わりに非アクティブとしてマークし、タイプ 2 のゆっくりと変化するディメンション (SCD) を作成します。
  • 変更データ キャプチャ (エンタープライズ機能): CDC 機能を使用してデータの変更をキャプチャします。変更のログが記録されますが、十分な情報が提供されない可能性があります。情報。
  • 変更追跡 (すべてのバージョン): SQL Server テーブルの変更を追跡しますが、監査目的のため制限があります。

推奨事項:

最適な方法は、特定の要件とパフォーマンスの制約によって異なります。最小限のテーブル サイズとインデックス オーバーヘッドが必要な場合は、監査テーブルを使用する方法 1 が適している可能性があります。履歴レポートを簡単に行うには、効果的な年代測定を行う方法 2 が良い選択になる可能性があります。

以上がパフォーマンスを維持しながら SQL Server の履歴データの変更を効率的に監査するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート