NSVacuum (Transact-SQL)
Führt den Vacuumprozess manuell aus, durch den veraltete Daten aus der Anwendungsdatenbank entfernt werden. Wenn der in der Anwendungsdefinitionsdatei (Application Definition File, ADF) definierte aktuelle Zeitplan für das Vacuuming nicht geeignet ist, empfiehlt es sich, den Zeitplan zu ändern und die Anwendung zu aktualisieren. Die manuelle Ausführung des Vacuumprozesses empfiehlt sich nur, wenn dies unvermeidbar ist (z. B. wenn der Speicherplatz der Datenbank erschöpft ist).
Wichtig: |
---|
Die manuelle Ausführung des Vacuumprozesses sollte nicht erfolgen, wenn er bereits ausgeführt wird oder die Ausführung in einem Zeitplan vorgesehen ist. Es könnten Anwendungsfehler auftreten, die dazu führen, dass keine Daten entfernt werden. |
Syntax
[ schema_name . ] NSVacuum
[@SecondsToRun = ] max_vacuuming_time
Argumente
[ @SecondsToRun =] max_vacuuming_time
Maximale Ausführungsdauer (in Sekunden) der gespeicherten Prozedur NSVacuum. Wenn der Vacuumprozess alle Daten entfernt hat, bevor der angegebene Zeitraum verstrichen ist, wird das Vacuuming in diesem Moment beendet. Wenn der Vacuumprozess innerhalb des angegebenen Zeitraums nicht alle fraglichen Daten entfernen konnte, wird er beendet, ohne dass alle veralteten Daten entfernt wurden. Bei der nächsten Ausführung dieser gespeicherten Prozedur wird das Vacuuming an der Stelle fortgesetzt, an der es zuvor beendet wurde. max_vacuuming_time ist ein Wert vom Datentyp int und hat keinen Standardwert.
Hinweise
Microsoft SQL Server Notification Services erstellt die gespeicherte Prozedur NSVacuum in der Anwendungsdatenbank, wenn Sie die Instanz erstellen. Wenn Sie die Anwendung aktualisieren, wird die gespeicherte Prozedur von Notification Services neu kompiliert.
Diese gespeicherte Prozedur befindet sich im Schema der Anwendung, das durch das SchemaName-Element der ADF angegeben wird. Falls kein Schemaname bereitgestellt wurde, wird dbo als Standardschema verwendet.
Verwenden Sie die gespeicherte Prozedur NSSnapshotApplications oder das Leistungsobjekt **NS$**instance_name: Vacuumer, um das Vacuuming zu überwachen.
Berechtigungen
Standardmäßig verfügen Mitglieder der Datenbankrollen NSRunService und NSVacuum, der festen Datenbankrolle db_owner und der festen Serverrolle sysadmin über Berechtigungen zum Ausführen dieser Prozedur.
Resultset
Spaltenname | Datentyp | Beschreibung |
---|---|---|
Status |
int |
Der aktuelle Status des Vacuumprozesses. Mögliche Werte sind 0 (aktiv), 2 (abgeschlossen) und 3 (Zeitlimit überschritten). Bei der manuellen Ausführung des Vacuumprozesses wird der Wert 0 nicht zurückgegeben. |
QuantumsVacuumed |
int |
Anzahl von Quanten, die während des aktuellen Vacuumzeitraums erfolgreich aus der Datenbank entfernt wurden. |
QuantumsRemaining |
int |
Anzahl von Quanten, die hätten entfernt werden können, jedoch nicht entfernt wurden, da das Zeitlimit überschritten wurde. |
Beispiele
Im folgenden Beispiel wird der Vacuumprozess für eine Dauer von fünf Minuten ausgeführt. Die gespeicherte Prozedur befindet sich (wie alle anderen Objekte für diese Anwendung) im Stock-Schema, wie im SchemaName-Element der ADF angegeben.
EXEC dbo.NSVacuum
@SecondsToRun = 300;
Siehe auch
Verweis
NSSnapshotApplications (Transact-SQL)
Andere Ressourcen
NS$instance_name: Vacuumer-Objekt
Entfernen von veralteten Anwendungsdaten
Vacuum Element (ADF)
SchemaName Element (ADF)