core.sp_purge_data (Transact-SQL)
Gilt für:SQL Server
Entfernt Daten basierend auf einer Beibehaltungsrichtlinie aus dem Verwaltungs-Data Warehouse. Diese Prozedur wird täglich vom mdw_purge_data SQL Server-Agent Auftrag für das Verwaltungsdatenlager ausgeführt, das der angegebenen Instanz zugeordnet ist. Sie können mit dieser gespeicherten Prozedur Daten aus dem Verwaltungs-Data Warehouse bedarfsgesteuert entfernen.
Transact-SQL-Syntaxkonventionen
Syntax
core.sp_purge_data
[ [ @retention_days = ] retention_days ]
[ , [ @instance_name = ] 'instance_name' ]
[ , [ @collection_set_uid = ] 'collection_set_uid' ]
[ , [ @duration = ] duration ]
[ ; ]
Argumente
[ @retention_days = ] retention_days
Die Anzahl der Tage für die Beibehaltung von Daten in den Verwaltungs-Data Warehouse-Tabellen. Daten mit einem Zeitstempel, der älter als @retention_days ist, werden entfernt. @retention_days ist klein, mit einem Standardwert von NULL
. Wenn angegeben, muss der Wert positiv sein. Wenn NULL, bestimmt der Wert in der Spalte valid_through in der core.snapshots
Ansicht die Zeilen, die zum Entfernen berechtigt sind.
[ @instance_name = ] 'instance_name'
Der Name der Instanz für den Sammlungssatz. @instance_name ist "sysname" mit einem Standardwert von NULL
.
instance_name muss der vollqualifizierte Instanzname sein, der aus dem Computernamen und dem Instanznamen im Namen des Formularcomputers \besteht. Wenn der Wert NULL ist, wird die Standardinstanz auf dem lokalen Server verwendet.
[ @collection_set_uid = ] 'collection_set_uid'
Die GUID für den Sammlungssatz. @collection_set_uid ist eindeutiger Bezeichner mit einem Standardwert von NULL
. Wenn der Wert NULL ist, werden die qualifizierenden Zeilen aus allen Sammlungssätzen entfernt. Um diesen Wert abzurufen, fragen Sie die syscollector_collection_sets
Katalogansicht ab.
[ @duration = ] Dauer
Die maximale Anzahl der Minuten für die Ausführung des Entfernen-Vorgangs. @duration ist klein, mit einem Standardwert von NULL
. Wenn dieser Wert angegeben ist, muss er 0 (null) oder eine positive ganze Zahl sein. Wenn der Wert NULL ist, wird der Vorgang so lange ausgeführt, bis alle gekennzeichneten Zeilen entfernt sind oder bis der Vorgang manuell beendet wird.
Rückgabecodewerte
0
(Erfolg) oder 1
(Fehler).
Hinweise
In diesem Verfahren werden Zeilen in der core.snapshots
Ansicht ausgewählt, die basierend auf einem Aufbewahrungszeitraum für die Entfernung gelten. Alle Zeilen, die zum Entfernen berechtigt sind, werden aus der core.snapshots_internal
Tabelle gelöscht. Das Löschen der vorangehenden Zeilen löst eine Löschweitergabe (cascading delete) in allen Verwaltungs-Data Warehouse-Tabellen aus. Dies wird durch die Verwendung der ON DELETE CASCADE-Klausel erzielt, die für alle Tabellen definiert wird, in denen gesammelte Daten gespeichert werden.
Jede Momentaufnahme wird mit den zugeordneten Daten in einer expliziten Transaktion gelöscht. Anschließend wird ein Commit ausgeführt. Wenn der Bereinigungsvorgang manuell beendet wird oder der für den angegebenen @duration Wert überschritten wird, werden nur die nicht übermittelten Daten erneut Standard. Diese Daten können bei der nächsten Ausführung des Auftrags entfernt werden.
Die Prozedur muss im Kontext der Verwaltungs-Data Warehouse-Datenbank ausgeführt werden.
Berechtigungen
Erfordert die Mitgliedschaft in der festen Datenbankrolle mdw_admin (mit EXECUTE-Berechtigung).
Beispiele
.A Ausführen sp_purge_data ohne Parameter
Im folgenden Beispiel wird ohne Angabe von Parametern core.sp_purge_data
ausgeführt. Daher wird der Standardwert NULL mit dem zugeordneten Verhalten für alle Parameter verwendet.
USE <management_data_warehouse>;
EXECUTE core.sp_purge_data;
GO
B. Angeben von Aufbewahrungs- und Dauerwerten
Im folgenden Beispiel werden Daten aus dem Verwaltungs-Data Warehouse entfernt, die älter als 7 Tage sind. Darüber hinaus wird der @duration Parameter so angegeben, dass der Vorgang nicht mehr als 5 Minuten ausgeführt wird.
USE <management_data_warehouse>;
EXECUTE core.sp_purge_data @retention_days = 7, @duration = 5;
GO
C. Angeben eines Instanznamens und eines Sammlungssatzes
Im folgenden Beispiel werden Daten aus dem Verwaltungsdatenlager für eine bestimmte Sammlung entfernt, die für die angegebene Instanz von SQL Server festgelegt ist. Da @retention_days nicht angegeben wird, wird der Wert in der spalte valid_through in der core.snapshots
Ansicht verwendet, um die Zeilen für den Sammlungssatz zu bestimmen, die zum Entfernen berechtigt sind.
USE <management_data_warehouse>;
GO
-- Get the collection set unique identifier for the Disk Usage system collection set.
DECLARE @disk_usage_collection_set_uid uniqueidentifier = (SELECT collection_set_uid
FROM msdb.dbo.syscollector_collection_sets WHERE name = N'Disk Usage');
EXECUTE core.sp_purge_data @instance_name = @@SERVERNAME, @collection_set_uid = @disk_usage_collection_set_uid;
GO
Zugehöriger Inhalt
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Issues stufenweise als Feedbackmechanismus für Inhalte abbauen und durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unterFeedback senden und anzeigen für