Core.sp_purge_data (języka Transact-SQL)
Usuwa dane z zarządzania magazyn danych na podstawie zasad przechowywania.Ta procedura jest wykonywane codziennie przez mdw_purge_data SQL Server Agent zadanie przeciwko zarządzania magazyn danych skojarzonego z określonego wystąpienie.Za pomocą tej procedura składowana do wykonania na żądanie usunięcia danych z zarządzania magazyn danych.
Składnia
core.sp_purge_data
[ [ @retention_days = ] retention_days ]
[ , [ @instance_name = ] 'instance_name' ]
[ , [ @collection_set_uid = ] 'collection_set_uid' ]
[ , [ @duration = ] duration ]
Argumenty
[@ retention_days =] retention_days
Liczba dni, aby zachować dane w tabelach zarządzania magazyn danych .Dane o czas sygnatury starsze niż retention_days jest usuwany.retention_daysjest smallint, domyślna wartość NULL.Jeśli określony, wartość musi być dodatnia.Gdy wartość NULL, wartość w valid_through kolumna w core.snapshots Widok określa wierszy, które kwalifikują się do usunięcia.[@ nazwa_wystąpienia = ] 'instance_name"
Nazwa wystąpienie kolekcja zestaw.instance_namejest sysname, domyślna wartość NULL.instance_namemusi być nazwą wystąpienie w pełni kwalifikowana, która składa się z nazwy komputera i nazwę wystąpienie w postaci nazwa_komputera\nazwa_wystąpienia.Jeśli NULL, używana jest wystąpienie domyślne na serwerze lokalnym.
[@ collection_set_uid = ] "collection_set_uid'
Identyfikator GUID dla kolekcja zestaw.collection_set_uidjest uniqueidentifier, domyślna wartość NULL.Gdy NULL, kwalifikujących się wiersze z wszystkich kolekcja zestawów zostaną usunięte.Aby uzyskać tę wartość, kwerenda syscollector_collection_sets wykazu widoku.[@ czas trwania = ] duration
Maksymalna liczba minut, przez które należy uruchomić operację czyszczenia.durationjest smallint, domyślna wartość NULL.Jeśli określony, wartość musi być dodatnią liczbą całkowitą lub zero.Gdy wartość NULL, operacja zostanie wykonana, dopóki nie zostaną usunięte wszystkie wiersze kwalifikowaną lub ręcznego zatrzymania operacji.
Wartości kodów powrotnych
0(sukces) lub 1 (błąd)
Uwagi
Procedura ta wybiera wiersze w core.snapshots Widok, który kwalifikuje się do usuwania oparte na okres przechowywania.Wszystkie wiersze, które kwalifikują się do usunięcia są usuwane z core.snapshots_internal tabela.Usuwanie wyzwalaczy wierszy poprzedniego usuwanie kaskadowe akcja we wszystkich tabelach magazyn danych zarządzania.Jest to zrobić przy użyciu klauzulaON DELETE CASCADE, który jest zdefiniowany dla wszystkich tabel, które przechowują zebrane dane.
Każdej migawka i skojarzonych danych są usunięte w obrębie transakcja jawna i następnie zatwierdzona.W związku z tym jeśli ręcznego zatrzymania operacji czyszczenia lub wartość określona dla @ czas trwania został przekroczony tylko dane nieprzekazane pozostaną.Może to być usunięta następnym czas , zadanie będzie uruchamiane.
Procedury muszą być wykonane w kontekście bazy danych magazyn danych zarządzania.
Uprawnienia
Wymaga członkostwa w mdw_admin (z uprawnieniem Wykonywanie) ustalony rola bazy danych.
Przykłady
A.Sp_purge_data uruchomiony bez parametrów
Poniższy przykład wykonuje core.sp_purge_data bez określania żadnych parametrów.W związku z tym wartość domyślna wartość NULL jest używany dla wszystkich parametrów, z zachowaniem skojarzone.
USE <management_data_warehouse>;
EXECUTE core.sp_purge_data;
GO
B.Określanie wartości retencji i czas trwania
W następującym przykładzie usunięto dane z zarządzania magazyn danych jest starsza niż 7 dni.Ponadto czasu trwania @ parametr jest określony, dzięki czemu operacja będzie działać nie dłużej niż 5 minut.
USE <management_data_warehouse>;
EXECUTE core.sp_purge_data @retention_days = 7, @duration = 5;
GO
C.Określanie wystąpienie nazwy i kolekcja zestaw
W następującym przykładzie usunięto dane z zarządzania magazyn danych dla danej kolekcja zestaw określonego wystąpienie SQL Server.Ponieważ @ retention_days nie jest określony, wartość w valid_through kolumna w core.snapshots Widok jest używana do określania wierszy dla kolekcja zestaw , które są uprawnione do usunięcia.
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
.gif)