core.sp_purge_data (Transact-SQL)

Van toepassing op:SQL Server

Verwijdert data uit het management data warehouse op basis van een retentiebeleid. Deze procedure wordt dagelijks uitgevoerd door de mdw_purge_data SQL Server Agent-taak tegen het management-datawarehouse dat aan de gespecificeerde instantie is gekoppeld. Je kunt deze opgeslagen procedure gebruiken om on-demand verwijdering van data uit het management data warehouse uit te voeren.

Transact-SQL syntaxis-conventies

Syntax

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

Het aantal dagen om data te bewaren in de management data warehouse-tabellen. Gegevens met een tijdstempel ouder dan @retention_days worden verwijderd. @retention_days is smallint, met een standaard van NULL. Indien gespecificeerd, moet de waarde positief zijn. Wanneer NULL, bepaalt de waarde in de kolom valid_through in de core.snapshots weergave welke rijen in aanmerking komen voor verwijdering.

[ @instance_name = ] 'instance_name'

De naam van de instantie voor de verzameling. @instance_name is systeemnaam, met als standaard .NULL

instance_name moet de volledig gekwalificeerde instantienaam zijn, die bestaat uit de computernaam en de instantienaam in de vorm <computername>\<instancename>. Wanneer NULL, wordt de standaardinstantie op de lokale server gebruikt.

[ @collection_set_uid = ] 'collection_set_uid'

De GUID voor de collectieset. @collection_set_uid is uniqueidentifier, met als standaard .NULL Wanneer NULL, worden kwalificerende rijen uit alle verzamelingssets verwijderd. Om deze waarde te verkrijgen, raadpleeg je de syscollector_collection_sets catalogusweergave.

[ @duration = ] duur

Het maximale aantal minuten dat de zuiveringsoperatie moet duren. @duration is smallint, met een standaard van NULL. Indien gespecificeerd, moet de waarde nul zijn of een positief geheel getal. Wanneer NULL, draait de bewerking totdat alle gekwalificeerde rijen zijn verwijderd of de bewerking handmatig wordt gestopt.

Codewaarden retourneren

0 (geslaagd) of 1 (mislukt).

Remarks

Deze procedure selecteert rijen in de core.snapshots weergave die in aanmerking komen voor verwijdering op basis van een retentieperiode. Alle rijen die in aanmerking komen voor verwijdering worden uit de core.snapshots_internal tabel verwijderd. Het verwijderen van de voorgaande rijen activeert een cascaderende verwijderactie in alle beheerdatawarehouse-tabellen. Dit gebeurt door gebruik te maken van de ON DELETE CASCADE-clausule, die is gedefinieerd voor alle tabellen waarin verzamelde gegevens worden opgeslagen.

Elke snapshot en de bijbehorende gegevens worden binnen een expliciete transactie verwijderd en vervolgens gecommit. Daarom, als de zuiveringsoperatie handmatig wordt gestopt of de gespecificeerde waarde voor @duration wordt overschreden, blijft alleen de niet-toegewijde data over. Deze gegevens kunnen de volgende keer dat de taak wordt uitgevoerd worden verwijderd.

De procedure moet worden uitgevoerd in de context van de management data warehouse-database.

Permissions

Vereist lidmaatschap van de vaste databaserol van mdw_admin (met uitvoeren) vaste database.

Examples

Eén. Voer sp_purge_data uit zonder parameters

Het volgende voorbeeld voert core.sp_purge_data uit zonder parameters te specificeren. Daarom wordt de standaardwaarde van NULL gebruikt voor alle parameters, met het bijbehorende gedrag.

USE <management_data_warehouse>;
EXECUTE core.sp_purge_data;
GO

B. Specificeer retentie- en duurwaarden

Het volgende voorbeeld verwijdert gegevens uit het management data warehouse die ouder zijn dan 7 dagen. Daarnaast wordt de @duration parameter zo gespecificeerd dat de bewerking niet langer dan 5 minuten duurt.

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

C. Specificeer een instantienaam en verzamelingsset

Het volgende voorbeeld verwijdert gegevens uit het management data warehouse voor een bepaalde verzamelingsset op de gespecificeerde instantie van SQL Server. Omdat @retention_days niet is gespecificeerd, wordt de waarde in de valid_through kolom in de core.snapshots weergave gebruikt om de rijen voor de verzameling te bepalen die in aanmerking komen voor verwijdering.

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