0

私たちのテーブルの 1 つには、トラブルシューティング情報を保存するための列があります。これは行に関連する XML データ型であるため、問題が発生した場合、そのトランザクションで発生したすべてのことをすばやく確認できます。データベースのサイズが大幅に増加するため、これが問題になっています。通常、1 か月後にはこの情報を取得する必要がなくなり、貴重なスペースが無駄になります。

私たちの解決策は、挿入トリガーを使用して、1 か月後に XML ログ列を無効にすることです。私たちの懸念は、これがテーブルのパフォーマンスに大きく影響し、問題を引き起こす可能性があるかどうかです。

以下は、私たちが達成しようとしていることです。

CREATE PROCEDURE [dbo].[sp_ClearTransactionXmlLogs]
AS
    UPDATE [dbo].[CCResponse]
       SET [TransactionXML] = NULL
     WHERE [DateSaved] < DATEADD(MONTH,-1,GETDATE())
       AND [TransactionXML] IS NOT NULL; 

CREATE TRIGGER [dbo].[tr_ClearTransactionXmlLogs]
ON [dbo].[CCResponse]
AFTER INSERT
AS EXEC sp_ClearTransactionXmlLogs;
4

2 に答える 2

0

通常、トリガーは、変更されたレコードに関する主な操作 (挿入、更新、削除) の後にアクションを実行するために使用されます。

挿入を実行しない場合、CCResponse は TransactionXML が null ではないことを通知します。

トリガーの代わりに、私見ですが、計画されたジョブを使用します。

于 2013-07-18T21:19:05.283 に答える