Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
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