core.sp_purge_data (Transact-SQL)

Si applica a:SQL Server

Rimuove i dati dal data warehouse di gestione in base ai criteri di memorizzazione. Questa procedura viene eseguita ogni giorno dal processo di SQL Server Agent mdw_purge_data sul data warehouse di gestione associato all'istanza specificata. È possibile utilizzare questa procedura per eseguire una rimozione su richiesta dei dati dal data warehouse di gestione.

Convenzioni di sintassi Transact-SQL

Sintassi

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

Argomenti

[ @retention_days = ] retention_days

Numero di giorni per cui conservare i dati nelle tabelle del data warehouse di gestione. I dati con un timestamp precedente a @retention_days vengono rimossi. @retention_days è smallint, con il valore predefinito NULL. Se specificato, il valore deve essere positivo. Se NULL, il valore nella colonna valid_through nella vista determina le righe idonee per la core.snapshots rimozione.

[ @instance_name = ] 'instance_name'

Nome dell'istanza per l'insieme di raccolta. @instance_name è sysname, con il valore predefinito NULL.

instance_name deve essere il nome completo dell'istanza, costituito dal nome computer e dal nome dell'istanza nel formato nomeistanza nomecomputer\. Quando è NULL, viene utilizzata l'istanza predefinita nel server locale.

[ @collection_set_uid = ] 'collection_set_uid'

GUID per il set di raccolta. @collection_set_uid è uniqueidentifier, con un valore predefinito .NULL Quando è NULL, vengono rimosse le righe risultanti da tutti i set di raccolta. Per ottenere questo valore, eseguire una query sulla vista del syscollector_collection_sets catalogo.

[ @duration = ] durata

Numero massimo di minuti per l'esecuzione dell'operazione di eliminazione. @duration è smallint, con il valore predefinito .NULL Se specificato, il valore deve essere zero o un numero intero positivo. Quando è NULL, l'operazione viene eseguita finché non vengono rimosse tutte le righe restituite o l'operazione non viene arrestata manualmente.

Valori del codice restituito

0 (esito positivo) o 1 (errore).

Osservazioni:

Questa procedura consente di selezionare le righe nella visualizzazione idonee per la core.snapshots rimozione in base a un periodo di conservazione. Tutte le righe idonee per la rimozione vengono eliminate dalla core.snapshots_internal tabella. L'eliminazione delle righe precedenti genera un'azione di eliminazione a catena in tutte le tabelle del data warehouse di gestione. Questa operazione viene eseguita utilizzando la clausola ON DELETE CASCADE definita per tutte le tabelle in cui vengono archiviati i dati raccolti.

Ogni snapshot e i dati associati vengono eliminati all'interno di una transazione esplicita, dopodiché viene eseguito il commit. Pertanto, se l'operazione di eliminazione viene arrestata manualmente o il valore specificato per @duration viene superato, rimangono solo i dati di cui non è stato eseguito il commit. Questi dati possono essere rimossi alla successiva esecuzione del processo.

La procedura deve essere eseguita nel contesto del database del data warehouse di gestione.

Autorizzazioni

Richiede l'appartenenza al ruolo predefinito del database mdw_admin (con autorizzazione EXECUTE).

Esempi

R. Eseguire sp_purge_data senza parametri

Nell'esempio seguente viene core.sp_purge_data eseguito senza specificare alcun parametro. Il valore predefinito NULL viene pertanto utilizzato per tutti i parametri, con il comportamento associato.

USE <management_data_warehouse>;
EXECUTE core.sp_purge_data;
GO

B. Specificare i valori di conservazione e durata

Nell'esempio seguente vengono rimossi dal data warehouse di gestione i dati più vecchi di 7 giorni. Inoltre, il @duration parametro viene specificato in modo che l'operazione venga eseguita non più di 5 minuti.

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

C. Specificare un nome di istanza e un set di raccolta

Nell'esempio seguente vengono rimossi i dati dal data warehouse di gestione per un determinato set di raccolta nell'istanza specificata di SQL Server. Poiché @retention_days non viene specificato, il valore nella colonna valid_through nella vista viene utilizzato per determinare le righe per il set di raccolta idoneo per la core.snapshots rimozione.

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

Vedi anche