Condividi tramite


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 mdw_purge_data processo di SQL Server Agent 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 relative alla 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. Quando 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 del computer e dal nome dell'istanza nel formato <computername>\<instancename>. Quando NULL, viene usata 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, le righe qualificate da tutti i set di raccolta vengono rimosse. 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 fino a quando tutte le righe qualificate non vengono rimosse o l'operazione 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. Pertanto, il valore predefinito di NULL viene usato 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 valid_through colonna nella core.snapshots visualizzazione viene usato per determinare le righe per il set di raccolta idoneo per la 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