データ削除の構成

Notification Services アプリケーションは、実行時に、イベント、通知、ディストリビューション テーブルに加え、Notification Services コンポーネントが操作を調整するために使用する制御テーブルのデータを蓄積します。アプリケーション データベースからこのデータが削除されない場合、データベースが非常に大きくなり、アプリケーションのパフォーマンス低下の原因となる場合があります。この状況を回避するために、Vacuumer 処理と呼ばれる自動データ削除処理を構成できます。

データ削除処理

Notification Services データ削除処理は、Vacuumer と呼ばれます。Vacuumer は、古いイベント、通知、バッチ ヘッダーのデータをアプリケーション データベースの以下のテーブルから削除します。

  • NSQuantum1
  • NSRuleFirings1
  • NSEventClassNameEventBatches
  • NSEventClassNameEvents
  • NSNotificationClassNameNotificationBatches
  • NSNotificationClassNameNotifications
  • NSDistributorWorkItems
  • NSDistributionLog

処理済みのイベント バッチや、送信済み、有効期限切れ、または失敗した通知のうち、これ以上の配信の実行がスケジュールされていない通知データのみシステムから削除されます。

Vacuumer は、各テーブルのレコードの最大数に基づいて一度に削除するレコードの数を制限します。これによって、各データ削除の間隔が制限され、Vacuumer はシステム リソースやアプリケーションの処理時間に過度に負担をかけることなく実行されます。

ms171064.note(ja-jp,SQL.90).gif重要 :
データ削除処理によって、大量のデータベース システム リソースが消費されます。データ削除処理は、システムの使用率が低い期間にのみ実行してください。

保有期間

Vacuumer を構成するときに、イベントと通知データの保有期間を指定します。Vacuumer は、起動すると、データベース サーバーのシステム クロックを読み取って、保有期間に達しているすべてのデータを識別します。

保有期間を指定するときに、イベントと通知データの保持期間を決定する必要があります。データ削除ではディストリビューション ログからもデータが削除されるため、データが保有期間よりも古くなる前にデータに必要な操作を実行する必要があります。

既定の保有期間は 7 日間です。

スケジュール

Vacuumer を構成するときに、Vacuumer の実行スケジュールも指定します。スケジュールには、複数の開始時刻と複数の実行時間を含めることができます。

  • UTC (協定世界時またはグリニッジ標準時) で表される開始時刻は、Vacuumer を実行する時刻を指定します。
  • 実行時間は、Vacuumer を実行する期間を指定します。既定の実行時間は 6 時間、つまり次の開始時刻までです。
ms171064.note(ja-jp,SQL.90).gif重要 :
既定のデータ削除スケジュールはありません。データ削除スケジュールを指定しない場合、Notification Services はアプリケーション データベースから古いデータを削除しません。

Vacuumer は、処理を実行するかどうかを 1 分に 1 回、確認します。このため、指定された開始時刻と実際の開始時刻に最大 1 分の時間差が生じる場合があります。

Vacuumer は、作業単位を完了するたびに、システム クロックを調べて、実行時間を超えていないかどうかを確認します。また、関連するアプリケーションが無効になっていないかどうか、データベースを調べます。いずれかの状況が発生した場合、Vacuumer は実行を停止し、イベント ログにメッセージを記録した後、次に予定されている Vacuumer 処理の時刻まで休止します。

Vacuumer 処理のスケジュールを決定する場合は、アプリケーションとデータベース サーバーの使用率が低い時間を選択することを推奨します。使用率が低い時間帯がない場合は、データ削除処理を頻繁に行って、各 Vacuumer 処理の期間で削除するデータの量を少なくすると、アプリケーションのパフォーマンスへの影響を最小限に抑えることができます。

データ削除処理を構成するには

XML でアプリケーションを定義している場合は、アプリケーション定義ファイル (ADF) でデータ削除を構成します。プログラムでアプリケーションを定義している場合は、Notification Services 管理オブジェクト (NMO) を使用して、データ削除を構成します。

参照

概念

アプリケーションの実行設定の指定
古いアプリケーション データの削除

その他の技術情報

NSVacuum (Transact-SQL)

ヘルプおよび情報

SQL Server 2005 の参考資料の入手