core.sp_purge_data (Transact-SQL)

S’applique à :SQL Server

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 mdw_purge_data SQL Server Agent travail 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.

Conventions de la syntaxe Transact-SQL

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 dont l’horodatage est antérieur à retention_days sont supprimées. retention_days est smallint, avec la valeur null 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 sysname, avec la valeur par défaut NULL.

instance_name doit être le nom complet de l’instance, qui se compose du nom de l’ordinateur et du nom de l’instance sous la forme computername\instancename. 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 uniqueidentifier, avec une valeur par défaut NULL. 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 = ] Durée
Nombre maximal de minutes pendant lesquelles l'opération de vidage doit s'exécuter. duration est smallint, avec une valeur par défaut NULL. Si elle est spécifiée, la valeur doit être zéro ou un entier positif. Lorsque 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.

Codet de retour

0 (réussite) ou 1 (échec)

Remarques

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 purge 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 restent. 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

Nécessite l’appartenance au rôle de base de données fixe mdw_admin (avec l’autorisation EXECUTE).

Exemples

R. 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. En outre, le @duration paramètre est spécifié pour 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 de collection donné sur l’instance spécifiée de SQL Server. Étant donné que @retention_days n’est pas spécifiée, la valeur de la colonne valid_through dans la vue core.snapshots est utilisée pour déterminer les lignes du jeu de collection qui peuvent être supprimées.

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  

Voir aussi

Procédures stockées système (Transact-SQL)
Procédures stockées du collecteur de données (Transact-SQL)