その他のジョブ関連テーブルの削除

更新 : 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

関連項目