私たちのテーブルの 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;