EVENT テーブルを一定の間隔で自動的にクリーンアップするために、SQL Server にジョブを作成できます。このジョブは、スクリプト ScheduledShrinkEventTable_install.sql または SQL Enterprise Manager を使用して作成できます。
注: このスケジュールされたジョブは、SQL Express データベースでは動作しません。このジョブを実行するには、SQL Server エージェントが実行されている必要があります。SQL Server Express のインストールには SQL Server エージェントが存在しないため、このジョブはサポートされません。
-
このスクリプトは msdb で実行する必要があります。SafeGuard Enterprise データベースとして SafeGuard とは別の名前を選択した場合は、それに応じて名前を変更します。
/* Default: Database name 'SafeGuard' change if required*/
SELECT @SafeGuardDataBase='SafeGuard'
-
また、EVENT テーブルに残すイベントの数を指定することもできます。デフォルトは 100,000 です。
/* Default: keep the latest 100000 events, change if required*/
SELECT @ShrinkCommand='exec spShrinkEventTable 100000'
-
ジョブ実行を NT イベント ログに記録するかどうかを指定できます。
exec sp_add_job
@job_name='AutoShrinkEventTable',
@enabled=1,
@notify_level_eventlog=3
パラメータ notify_level_eventlog には、次の値を使用できます。
値 |
結果 |
3 |
ジョブが実行されるたびにログに記録します。 |
2 |
ジョブが失敗した場合はログに記録します。 |
1 |
ジョブが正常に実行された場合はログに記録します。 |
0 |
ジョブ実行を NT イベント ログに記録しません。 |
-
失敗した場合にジョブ実行を繰り返す頻度を指定できます。
-
ジョブを実行する時間スケジュールを指定できます。
exec sp_add_jobschedule
-
@freq_type=4
この例では、ジョブを毎日実行するように定義しています。
-
@freq_interval=1
この例では、ジョブを 1 日に 1 回実行するように定義しています。
-
@active_start_time=010000
この例では、ジョブを午前 1 時に実行するように定義しています。
注: 上に示した例の値に加え、sp_add-jobschedule を使用して、異なるスケジュール オプションの数値を定義できます。たとえば、ジョブを 2分おきに、または 1週間に 1回だけ実行することができます。詳細は、Microsoft Transact SQL のマニュアルを参照してください。