次の方法で共有


NSVacuum (Transact-SQL)

アプリケーション データベースから古いデータを削除する Vacuumer 処理を手動で実行します。アプリケーション定義ファイル (ADF) に現在定義されている Vacuumer のスケジュール設定が適切でない場合は、Vacuumer のスケジュール設定を修正してアプリケーションを更新することをお勧めします。データベースのディスク空き容量がなくなったときなど、本当に必要なときにだけ、Vacuumer を手動で実行してください。

ms179860.note(ja-jp,SQL.90).gif重要 :
Vacuumer 処理が実行中か、実行が予定されている場合は、Vacuumer 処理を手動で実行しないでください。アプリケーション エラーが起こり、結果としてデータがまったく削除されない可能性があります。

構文

[ schema_name . ] NSVacuum
    [@SecondsToRun = ] max_vacuuming_time

引数

[ @SecondsToRun =] max_vacuuming_time

NSVacuum ストアド プロシージャを実行できる最長時間を秒単位で指定します。ここで指定した時間が経過する前に Vacuumer 処理ですべてのデータが削除された場合、その時点で処理は停止します。ここで指定した時間内に Vacuumer 処理が終了しない場合は、処理が停止した後、古いデータが残り、次回このストアド プロシージャを実行したときに、前回停止したところから処理が再開されます。max_vacuuming_time のデータ型は int で、既定値はありません。

結果セット

列名 データ型 説明

Status

int

Vacuumer 処理の現在の状態。0 (実行中)、2 (完了)、3 (制限時間切れ) のいずれかの値となります。手動で Vacuumer を実行した場合、この列に 0 が格納されることはありません。

QuantumsVacuumed

int

現在の Vacuumer 処理中にデータベースから正常に削除されたクォンタムの数。

QuantumsRemaining

int

削除されるはずだったが、制限時間が過ぎたために削除されなかったクォンタムの数。

解説

Microsoft SQL Server Notification Services でインスタンスを作成すると、アプリケーション データベース内に NSVacuum ストアド プロシージャが作成されます。アプリケーションを更新すると、Notification Services ではストアド プロシージャが再コンパイルされます。

このストアド プロシージャは、アプリケーション定義ファイル (ADF) の要素 SchemaName で指定される、アプリケーション スキーマ内に格納されます。スキーマ名が指定されない場合、既定のスキーマ dbo が使用されます。

Vacuumer 処理を監視するには、NSSnapshotApplications ストアド プロシージャまたは **NS$**instance_name: Vacuumer パフォーマンス オブジェクトを使用します。

権限

実行権限は、既定では NSRunService データベース ロール、NSVacuum データベース ロール、db_owner 固定データベース ロール、および sysadmin 固定サーバー ロールのメンバに与えられています。

次の例では、Vacuumer 処理を 5 分間行います。この例では、ADF の要素 SchemaName で指定された Stock スキーマ内に、ストアド プロシージャと他のすべてのアプリケーション オブジェクトが格納されます。

EXEC dbo.NSVacuum 
    @SecondsToRun = 300;

参照

関連項目

NSSnapshotApplications (Transact-SQL)

その他の技術情報

NS$instance_name: Vacuumer オブジェクト
古いアプリケーション データの削除
Vacuum 要素 (ADF)
SchemaName 要素 (ADF)

ヘルプおよび情報

SQL Server 2005 の参考資料の入手