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