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