その他のジョブ関連テーブルの削除
更新 : 2009-04-30
Planning プロセス サービスでは、AsyncWorkItems テーブルのレコードを処理します。このテーブルには、Planning プロセス サービスで処理された作業項目と、まだキュー内にあり、Planning プロセス サービスで処理される項目が格納されています。
このテーブル データおよびその関連テーブル (AsyncWorkItemStatusHistory) はどの計画プロセスでも削除されません。データベース管理者は、AsyncWorkItems テーブルの大きさをモニタリングし、定期的に削除する必要があります。このような削除を実行するためのストアド プロシージャが用意されています。
AsyncWorkItems テーブル内のレコードを参照するテーブルが他にいくつかあります。アプリケーション データベースにインストールされているストアド プロシージャ bsp_AsyncWorkItemsPurge は、それらのどのテーブルによっても参照されないレコードと特定の日付より古いレコードのみを削除します。
AsyncWorkItems テーブル内の AsyncWorkItemID は、次の表によって参照される外部キーです。
RecurrentCycle (AutoStartTimerID),
CycleInstances (AutoStartTimerID, AutoEndTimerID),
Assignments (AutoStartTimerID, AutoEndTimerID),
JobInstances (WorkItemID)
AsyncWorkItems テーブルおよびその関連付けられたテーブル データは、それらのテーブルが AsyncWorkItemID を参照しない場合や ItemEndDatetime が、特定の日時よりも古い場合に限り削除できます。
次のコードは、このストアド プロシージャを実行するスクリプトです。このサンプルでは、2007 より前の ItemEndDatetime 列を持つすべての AsyncWorkItems (および関連付けられている AsyncWorkItemStatusHistory テーブル) を削除する方法を示します。その他のどのテーブルによっても参照されていないレコードのみが削除されます。
DECLARE @RET int
EXEC @RET = bsp_AsyncWorkItemsPurge @PurgeDatetime = ‘12/31/2006’
SELECT @RET