core.sp_purge_data (Transact-SQL)
Supprime des données de l'entrepôt de données de gestion en fonction d'une stratégie de rétention. Cette procédure est exécutée quotidiennement par le travail de l'Agent SQL Server mdw_purge_data sur l'entrepôt de données de gestion associé à l'instance spécifiée. Vous pouvez utiliser cette procédure stockée pour effectuer une suppression à la demande des données dans l'entrepôt de données de gestion.
Syntaxe
core.sp_purge_data
[ [ @retention_days = ] retention_days ]
[ , [ @instance_name = ] 'instance_name' ]
[ , [ @collection_set_uid = ] 'collection_set_uid' ]
[ , [ @duration = ] duration ]
Arguments
[@retention_days =] retention_days
Nombre de jours pendant lesquels conserver des données dans les tables de l'entrepôt de données de gestion. Les données ayant un horodatage antérieur à retention_days sont supprimées. retention_days est de type smallint, avec NULL comme valeur par défaut. Si elle est spécifiée, la valeur doit être positive. Lorsqu'elle est NULL, la valeur dans la colonne valid_through de la vue core.snapshots détermine les lignes qui sont éligibles pour la suppression.[@instance_name = ] 'instance_name'
Nom de l'instance pour le jeu d'éléments de collecte. instance_name est de type sysname, avec NULL comme valeur par défaut.instance_name doit être le nom d'instance complet, composé du nom d'ordinateur et du nom d'instance sous la forme nom_ordinateur\nom_instance. Lorsque la valeur est NULL, l'instance par défaut sur le serveur local est utilisée.
[@collection_set_uid = ] 'collection_set_uid'
GUID du jeu d'éléments de collecte. collection_set_uid est de type uniqueidentifier, avec NULL comme valeur par défaut. Lorsque la valeur est NULL, les lignes éligibles de tous les jeux d'éléments de collecte sont supprimées. Pour obtenir cette valeur, interrogez l'affichage catalogue syscollector_collection_sets.[@duration = ] duration
Nombre maximal de minutes pendant lesquelles l'opération de vidage doit s'exécuter. duration est de type smallint, avec NULL comme valeur par défaut. Si elle est spécifiée, la valeur doit être zéro ou un entier positif. Lorsque la valeur est NULL, l'opération s'exécute jusqu'à ce que toutes les lignes éligibles soient supprimées ou que l'opération soit arrêtée manuellement.
Valeurs des codes de retour
0 (succès) ou 1 (échec)
Notes
Cette procédure sélectionne des lignes dans la vue core.snapshots qui sont éligibles pour la suppression en fonction d'une période de rétention. Toutes les lignes éligibles pour la suppression sont supprimées de la table core.snapshots_internal. La suppression des lignes précédentes déclenche une action de suppression en cascade dans toutes les tables de l'entrepôt de données de gestion. Cette opération est effectuée en utilisant la clause ON DELETE CASCADE, qui est définie pour toutes les tables stockant des données collectées.
Chaque instantané et ses données associées sont supprimés dans une transaction explicite, puis validés. Par conséquent, si l'opération de vidage est arrêtée manuellement ou si la valeur spécifiée pour @duration est dépassée, seules les données non validées demeurent. Ces données peuvent être supprimées lors de la prochaine exécution du travail.
La procédure doit être exécutée dans le contexte de la base de données d'entrepôt de données de gestion.
Autorisations
Requiert l'appartenance au rôle de base de données fixe mdw_admin (avec l'autorisation EXECUTE).
Exemples
A. Exécution de sp_purge_data sans paramètres
L'exemple suivant exécute core.sp_purge_data sans spécifier de paramètres. Par conséquent, la valeur par défaut NULL est utilisée pour tous les paramètres, avec le comportement associé.
USE <management_data_warehouse>;
EXECUTE core.sp_purge_data;
GO
B. Spécification de valeurs de rétention et de durée
L'exemple suivant supprime les données de l'entrepôt de données de gestion antérieures à 7 jours. De plus, le paramètre @duration est spécifié afin que l'opération ne s'exécute pas plus de 5 minutes.
USE <management_data_warehouse>;
EXECUTE core.sp_purge_data @retention_days = 7, @duration = 5;
GO
C. Spécification d'un nom d'instance et d'un jeu d'éléments de collecte
L'exemple suivant supprime des données de l'entrepôt de données de gestion pour un jeu d'éléments de collecte donné sur l'instance spécifiée de SQL Server. Étant donné que @retention\_days n'est pas spécifié, la valeur de la colonne valid_through dans la vue core.snapshots est utilisée pour déterminer les lignes du jeu d'éléments de collecte qui sont éligibles pour la suppression.
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