古いアプリケーション データの削除

Microsoft SQL Server Notification Services アプリケーション データベースに大量のデータが存在する場合、次の 2 つの原因でパフォーマンスが低下する可能性があります。まず、大規模なテーブルは、クエリのパフォーマンス低下の原因となる場合があります。次に、データ ファイルが大きくなると、SQL Server が自動的にファイル サイズを増加することがあり、この操作がシステム リソースを消費します。

Notification Services は、無効データ削除と呼ばれる処理を使用して、アプリケーション データベースから古いデータを削除します。無効データ削除は、アプリケーション定義で定義されたスケジュールに従って、各アプリケーションで自動的に実行される処理です。

アプリケーションを定義する際に、アプリケーションのデータ保有期間と無効データ削除のスケジュールを指定します。データ保有期間は、イベントおよび通知データを削除できる最小期間です。たとえば、保有期間として 1 日を指定すると、データが作成されてから 1 日経過するまで、そのデータを削除できなくなります。無効データ削除のスケジュールでは、1 つ以上の開始時刻と無効データ削除期間を指定します。詳細については、「データ削除の構成」を参照してください。

データはクォンタム単位で削除されます。つまり、クォンタム中に処理されるすべてのイベントおよび通知がまとめて削除されることになります。

無効データ削除処理がスケジュールどおりに実行されていることをアプリケーションの実行中に確認します。無効データ削除の実行中に別の無効データ削除構成がアプリケーションで必要になった場合、アプリケーションを定義を編集し、アプリケーションを更新して変更内容を適用することにより、無効データ削除を変更できます。必要に応じて無効データ削除を手動で実行できます。

無効データ削除実行の確認

すべてのアプリケーションでは、無効データ削除がスケジュールどおりに実行されていることを確認するため、定期的に調査する必要があります。大量のデータがアプリケーション データベースに蓄積された場合、アプリケーションのパフォーマンスが低下し、データベースのディスク領域が不足する可能性があります。Notification Services に用意されているアプリケーション監視用のストアド プロシージャとパフォーマンス カウンタを使用すると、無効データ削除を監視することができます。

  • NSSnapshotApplications ストアド プロシージャは、無効データ削除処理が最後に実行された日時、および削除されたイベントと通知行の数に関するデータを返します。
  • NS$instanceName: Vacuumer パフォーマンス オブジェクトは、Vacuumer 処理に関連するパフォーマンス カウンタを提供します。Vacuumer コンポーネントがタイムアウトしているかどうかを判断し、無効データ削除が実行されたクォンタムまたは無効データ削除の準備ができているクォンタムの数を判断するために、このオブジェクトが提供するカウンタを監視します。

無効データ削除は、既に配信済みの通知、または追加再試行が行われない通知だけを削除します。無効データ削除は、既に処理されたイベントだけを削除します。無効データ削除は、クォンタムに関連付けられている通知とイベントが既に削除されている場合にのみ、クォンタムを削除します。削除される予定のデータがまだ削除されていない場合は、まだ削除できないデータの一部にそのデータが依存していると考えられます。

無効データ削除スケジュールの変更

Notification Services アプリケーションの無効データ削除スケジュールを調整するには、アプリケーション定義を編集し、アプリケーションを更新して変更内容をアプリケーション データベースに適用する必要があります。無効データ削除スケジュールの定義の詳細については、「データ削除の構成」を参照してください。

ms166387.note(ja-jp,SQL.90).gif重要 :
無効データ削除スケジュールを変更する場合、システムの利用が少ないときに無効データ削除を実行するようにスケジュールを構成します。無効データ削除はシステム リソースを消費するので、無効データ削除の実行中にアプリケーションのパフォーマンスが低下することがあります。

無効データ削除の手動実行

通常は Vacuumer をスケジュールどおりに実行することを推奨します。無効データ削除がシステム パフォーマンス低下の原因となっている場合、またはデータが十分に削除されていない場合は、アプリケーション定義のスケジュールを変更して、アプリケーションを更新します。無効データ削除がスケジュールどおりに実行されていないと判断される場合や、記憶領域またはパフォーマンス上の理由のためデータの削除が必要な場合にのみ、無効データ削除を手動で実行してください。

ms166387.note(ja-jp,SQL.90).gif重要 :
Vacuumer の実行中、または実行がスケジューリングされている場合は、手動で Vacuumer を実行することは避けてください。アプリケーション エラーが発生し、古いデータがそのまま残る場合があります。アプリケーション定義を参照して、無効データ削除のスケジュールを確認してください。無効データ削除のスケジュールがアプリケーション定義に含まれない場合、アプリケーションは古いデータを自動的に削除しません。

アプリケーション データベースに格納されている NSVacuum ストアド プロシージャを使用して、無効データ削除を手動で実行します。詳細については、「NSVacuum (Transact-SQL)」を参照してください。

参照

概念

データ削除の構成
アプリケーションの更新

その他の技術情報

Vacuum 要素 (ADF)
NSVacuum (Transact-SQL)

ヘルプおよび情報

SQL Server 2005 の参考資料の入手