Entfernen von veralteten Anwendungsdaten
Große Datenmengen in einer Microsoft SQL Server Notification Services-Anwendungsdatenbank können die Leistung auf zwei Arten beeinträchtigen. Erstens können umfangreiche Tabellen die Abfrageleistung beeinträchtigen. Zweitens werden Dateien möglicherweise von SQL Server automatisch vergrößert, wenn Datendateien zu umfangreich werden. Durch diesen Vorgang werden Systemressourcen beansprucht.
Veraltete Daten werden von Notification Services mithilfe eines so genannten Vacuumer-Prozesses aus Anwendungsdatenbanken entfernt. Der Vacuumerprozess wird automatisch für jede Anwendung nach einem in der Anwendungsdefinition festgelegten Zeitplan ausgeführt.
Beim Definieren einer Anwendung geben Sie das Datenbeibehaltungsalter der Anwendung und den Vacuumerzeitplan an. Das Datenbeibehaltungsalter ist das Mindestalter, mit dem Ereignis- und Benachrichtigungsdaten entfernt werden können. Mit einem Beibehaltungsalter von einem Tag wird z. B. angegeben, dass Daten erst dann entfernt werden können, wenn sie mindestens einen Tag alt sind. Der Vacuumerzeitplan gibt mindestens eine Startzeit und Dauer für den Vacuumerprozess an. Weitere Informationen finden Sie unter Konfigurieren der Datenentfernung.
Daten werden auf einer Quantum-zu-Quantum-Basis entfernt. Dies bedeutet, dass alle Ereignisse und Benachrichtigungen, die während eines Quantums verarbeitet werden, als eine Einheit entfernt werden.
Stellen Sie beim Ausführen von Anwendungen sicher, dass der Vacuumerprozess entsprechend dem Zeitplan ausgeführt wird. Falls der Vacuumerprozess aufgeführt wird, von der Anwendung jedoch eine andere Konfiguration des Vacuumerprozesses benötigt wird, können Sie den Vacuumerprozess ändern, indem Sie die Anwendungsdefinition bearbeiten und die Anwendung aktualisieren, um die Änderungen zu übernehmen. Gegebenenfalls können Sie den Vacuumerprozess auch manuell ausführen.
Sicherstellen, dass der Vacuumerprozess ausgeführt wird
Sie sollten für jede Anwendung regelmäßig überprüfen, ob der Vacuumerprozess entsprechend dem Zeitplan ausgeführt wird. Falls große Datenmengen in der Anwendungsdatenbank gesammelt werden, kann die Anwendungsleistung abnehmen, und die Datenbank hat möglicherweise zu wenig Speicherplatz zur Verfügung. Von Notification Services werden gespeicherte Prozeduren und Leistungsindikatoren für das Überwachen von Anwendungen bereitgestellt. Verwenden Sie diese zum Überwachen des Vacuumerprozesses.
- Von der gespeicherten Prozedur NSSnapshotApplications werden Daten zur letzten Ausführung des Vacuumerprozesses und zur Anzahl der entfernten Ereignis- und Benachrichtigungszeilen zurückgegeben.
- Vom NS$instanceName: Vacuumer-Leistungsobjekt werden Leistungsindikatoren für den Vacuumerprozess bereitgestellt. Durch das Überwachen der von diesem Objekt bereitgestellten Leistungsindikatoren können Sie ermitteln, ob bei der Vacuumerkomponente ein Timeout auftritt und wie viele Quanten vom Vacuumerprozess entfernt wurden bzw. zur Entfernung bereitstehen.
Benachrichtigungen werden nur dann vom Vacuumerprozess entfernt, wenn sie übermittelt wurden oder keine weiteren Wiederholungen geplant sind. Ereignisse werden nur entfernt, wenn sie verarbeitet wurden. Quanten werden nur entfernt, wenn die zugehörigen Benachrichtigungen und Ereignisse entfernt wurden. Wenn Daten entgegen Ihrer Erwartung nicht entfernt wurden, sind wahrscheinlich abhängige Daten vorhanden, die noch nicht entfernt werden können.
Ändern des Vacuumerzeitplanes
Zum Anpassen des Vacuumerzeitplanes für eine Notification Services-Anwendung müssen Sie die Anwendungsdefinition bearbeiten und die Anwendung anschließend aktualisieren, um die Änderungen in der Anwendungsdatenbank zu übernehmen. Weitere Informationen zum Definieren eines Vacuumerzeitplanes finden Sie unter Konfigurieren der Datenentfernung.
Wichtig: |
---|
Wenn Sie den Vacuumerzeitplan ändern, sollten Sie ihn so konfigurieren, dass der Vacuumerprozess zu Zeiten mit geringer Systemaktivität ausgeführt wird. Vom Vacuumerprozess werden Systemressourcen verbraucht, dadurch kann die Leistung von Anwendungen beeinträchtigt werden. |
Manuelles Ausführen des Vacuumerprozesses
Im Allgemeinen sollte der Vacuumerprozess wie geplant ausgeführt werden. Wenn durch den Vacuumerprozess die Systemleistung beeinträchtigt wird oder nicht genügend Daten entfernt werden, können Sie den Zeitplan in der Anwendungsdefinition ändern und die Anwendung anschließend aktualisieren. Führen Sie den Vacuumerprozess nur dann manuell aus, wenn Sie feststellen, dass der Vacuumerprozess nicht wie geplant ausgeführt wurde, und wenn Daten aus Gründen des Speicherplatzbedarfs oder der Leistung entfernt werden müssen.
Wichtig: |
---|
Führen Sie den Vacuumerprozess nicht manuell aus, während er bereits ausgeführt wird oder wenn seine Ausführung geplant ist. Es können Anwendungsfehler auftreten, wobei veraltete Daten intakt bleiben. Den Vacuumerzeitplan können Sie der Anwendungsdefinition entnehmen. Wenn die Anwendungsdefinition keinen Vacuumerzeitplan enthält, werden veraltete Daten nicht automatisch von der Anwendung entfernt. |
Zum manuellen Ausführen des Vacuumerprozesses verwenden Sie die gespeicherte Prozedur NSVacuum aus der Anwendungsdatenbank. Weitere Informationen finden Sie unter NSVacuum (Transact-SQL).
Siehe auch
Konzepte
Konfigurieren der Datenentfernung
Aktualisieren einer Anwendung
Andere Ressourcen
Vacuum Element (ADF)
NSVacuum (Transact-SQL)