Share via


core.sp_purge_data (Transact-SQL)

Quita los datos del almacén de administración de datos basándose en una directiva de retención. Este procedimiento lo ejecuta diariamente el trabajo del Agente mdw_purge_data SQL Server en el almacén de administración de datos asociado a la instancia especificada. Puede utilizar este procedimiento almacenado para realizar una eliminación a petición de los datos del almacén de administración de datos.

Icono de vínculo a temas Convenciones de sintaxis de Transact-SQL

Sintaxis

core.sp_purge_data
    [ [ @retention_days = ] retention_days ]
    [ , [ @instance_name = ] 'instance_name' ]
    [ , [ @collection_set_uid = ] 'collection_set_uid' ]
    [ , [ @duration = ] duration ]

Argumentos

  • [@retention_days =] retention_days
    Número de días que se van a retener los datos en las tablas de almacén de administración de datos. Los datos con una marca de tiempo anterior a retention_days se quitan. retention_days es de tipo smallint y su valor predeterminado es NULL. Si se especifica, el valor debe ser positivo. Cuando es NULL, el valor de la columna valid_through de la vista core.snapshots determina las filas que pueden quitarse.

  • [@instance_name = ] 'instance_name'
    Nombre de la instancia del conjunto de recopilación. instance_name es de tipo sysname y su valor predeterminado es NULL.

    instance_name debe ser un nombre de instancia completo y se compone del nombre del equipo y del nombre de la instancia con el formato computername\instancename. Cuando es NULL, se utiliza la instancia predeterminada en el servidor local.

  • [@collection_set_uid = ] 'collection_set_uid'
    GUID del conjunto de recopilación. collection_set_uid es de tipo uniqueidentifier y su valor predeterminado es NULL. Cuando es NULL, se quitan las filas certificadas de todos los conjuntos de recopilación. Para obtener este valor, consulte la vista de catálogo syscollector_collection_sets.

  • [@duration = ] duration
    El número máximo de minutos que debe durar la ejecución de la operación de purga. duration es de tipo smallint y su valor predeterminado es NULL. Si se especifica, el valor debe ser cero o un entero positivo. Cuando es NULL, la operación se ejecuta hasta que se quitan todas las filas certificadas o se detiene manualmente la operación.

Valores de código de retorno

0 (correcto) o 1 (error)

Comentarios

Este procedimiento selecciona las filas de la vista core.snapshots que pueden quitarse de acuerdo con el período de retención. Todas las filas que se pueden quitar se eliminan de la tabla core.snapshots_internal. La eliminación de las filas precedentes desencadenará una acción de eliminación en cascada en todas las tablas del almacén de administración de datos. Esto se consigue al usar la cláusula ON DELETE CASCADE, que se define para todas las tablas que contienen datos recopilados.

Cada instantánea y sus datos asociados se eliminan dentro de una transacción explícita y, a continuación, se confirma la operación. Por consiguiente, si se detiene manualmente la operación de purga o se supera el valor especificado para @duration, solo se conservan los datos que no se hayan confirmado. Estos datos se pueden quitar la próxima vez que se ejecute el trabajo.

El procedimiento se debe ejecutar en el contexto de la base de datos del almacén de administración de datos.

Permisos

Requiere la pertenencia al rol fijo de base de datos mdw_admin (con permiso EXECUTE).

Ejemplos

A.Ejecución de sp_purge_data sin parámetros

En el ejemplo siguiente se ejecuta core.sp_purge_data sin especificar ningún parámetro. Por consiguiente, el valor predeterminado NULL se utiliza para todos los parámetros, con el comportamiento asociado.

USE <management_data_warehouse>;
EXECUTE core.sp_purge_data;
GO

B.Especificación de valores de retención y duración

En el ejemplo siguiente se quitan los datos del almacén de administración de datos anteriores a 7 días. Además, se especifica el parámetro @duration para que la duración de la ejecución de la operación no supere los 5 minutos.

USE <management_data_warehouse>;
EXECUTE core.sp_purge_data @retention_days = 7, @duration = 5;
GO

C.Especificación de un nombre de instancia y un conjunto de recopilación

En el ejemplo siguiente se quitan los datos del almacén de administración de datos que contiene un conjunto de recopilación determinado en la instancia de SQL Server especificada. Dado que no se especifica @retention\_days, el valor de la columna valid_through de la vista core.snapshots se usa para determinar las filas del conjunto de recopilación que pueden quitarse.

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

Vea también

Referencia

Procedimientos almacenados del sistema (Transact-SQL)

Procedimientos almacenados del recopilador de datos (Transact-SQL)