Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Gäller för:SQL Server
Tar bort data från hanteringsdatalagret baserat på en lagringspolicy. Denna procedur utförs dagligen av SQL Server Agent-jobbet mdw_purge_data mot hanteringsdatalagret som är kopplat till den angivna instansen. Du kan använda denna lagrade procedur för att utföra en on-demand-borttagning av data från hanteringsdatalagret.
Transact-SQL syntaxkonventioner
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
Antalet dagar för att behålla data i hanteringsdatalagertabellerna. Data med en tidsstämpel äldre än @retention_days tas bort.
@retention_days är smallint, med en standard på NULL. Om det anges måste värdet vara positivt. När NULL, avgör värdet i kolumnen valid_through i vyn core.snapshots vilka rader som är berättigade att tas bort.
[ @instance_name = ] 'instance_name'
Namnet på instansen för samlingsmängden.
@instance_name är sysname, med standardvärdet .NULL
instance_name måste vara det fullt kvalificerade instansnamnet, som består av datorns namn och instansnamnet i formen <computername>\<instancename>. När NULL, används standardinstansen på den lokala servern.
[ @collection_set_uid = ] 'collection_set_uid'
GUID för samlingssetet.
@collection_set_uid är unik identifierare, med standardvärdet .NULL När NULL, tas kvalificerande rader från alla samlingsuppsättningar bort. För att få detta värde, sök i syscollector_collection_sets katalogvyn.
[ @duration = ] varaktighet
Det maximala antalet minuter som rensningsoperationen bör pågå.
@duration är smallint, med en standard på NULL. Om det anges måste värdet vara noll eller ett positivt heltal. När NULL, körs operationen tills alla kvalificerade rader tagits bort eller operationen stoppas manuellt.
Returnera kodvärden
0 (lyckades) eller 1 (fel).
Remarks
Denna procedur väljer rader i vyn core.snapshots som kvalificerar för borttagning baserat på en lagringsperiod. Alla rader som kvalificerar för borttagning tas bort från tabellen core.snapshots_internal . Att radera de föregående raderna utlöser en kaskadraderad borttagningsåtgärd i alla hanteringsdatalagerstabeller. Detta görs genom att använda ON DELETE CASCADE-klausulen, som definieras för alla tabeller som lagrar insamlad data.
Varje ögonblicksbild och dess tillhörande data raderas inom en explicit transaktion och genomförs sedan. Därför, om rensningsoperationen stoppas manuellt, eller värdet som anges för @duration överskrids, återstår endast den obundna datan. Denna data kan tas bort nästa gång jobbet körs.
Proceduren måste utföras i kontexten av databasen för hanteringsdatalagret.
Permissions
Kräver medlemskap i den mdw_admin (med EXEKUTE-behörighet) fasta databasrollen.
Examples
A. Kör sp_purge_data utan parametrar
Följande exempel exekveras core.sp_purge_data utan att specificera några parametrar. Därför används standardvärdet för NULL för alla parametrar, med tillhörande beteende.
USE <management_data_warehouse>;
EXECUTE core.sp_purge_data;
GO
B. Ange värden för retention och duration
Följande exempel tar bort data från hanteringsdatalagret som är äldre än 7 dagar. Dessutom specificeras parametern @duration så att operationen inte pågår längre än 5 minuter.
USE <management_data_warehouse>;
EXECUTE core.sp_purge_data @retention_days = 7, @duration = 5;
GO
C. Ange ett instansnamn och en samlingsmängd
Följande exempel tar bort data från hanteringsdatalagret för en given samlingsmängd på den angivna instansen av SQL Server. Eftersom @retention_days inte specificeras används värdet i kolumnen valid_through i core.snapshots vyn för att avgöra vilka rader för samlingsuppsättningen som är berättigade att tas bort.
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