Заметка
Доступ к этой странице требует авторизации. Вы можете попробовать войти в систему или изменить каталог.
Доступ к этой странице требует авторизации. Вы можете попробовать сменить директорию.
Область применения: SQL Server
Удаляет данные из хранилища данных управления в соответствии со стратегией хранения. Эта процедура выполняется ежедневно заданием mdw_purge_data агент SQL Server для хранилища данных управления, связанного с указанным экземпляром. Эта хранимая процедура предназначена для удаления данных из хранилища данных управления по требованию.
Соглашения о синтаксисе Transact-SQL
Синтаксис
core.sp_purge_data
[ [ @retention_days = ] retention_days ]
[ , [ @instance_name = ] 'instance_name' ]
[ , [ @collection_set_uid = ] 'collection_set_uid' ]
[ , [ @duration = ] duration ]
[ ; ]
Аргументы
[ @retention_days = ] retention_days
Число дней хранения данных в таблицах хранилища данных управления. Данные с меткой времени старше @retention_days удаляются. @retention_days имеет небольшой размер с значением по умолчаниюNULL. Указываемое значение должно быть положительным числом. Если NULLзначение в столбце valid_through в core.snapshots представлении определяет строки, которые могут быть удалены.
[ @instance_name = ] 'instance_name'
Имя экземпляра набора элементов сбора. @instance_name — sysname( значение по умолчанию NULL).
instance_name должно быть полным именем экземпляра, который состоит из имени компьютера и имени экземпляра в форме<computername>\<instancename>. При NULLиспользовании экземпляра по умолчанию на локальном сервере.
[ @collection_set_uid = ] 'collection_set_uid'
Имеет значение GUID для набора элементов сбора. @collection_set_uid является уникальным идентификатором по умолчаниюNULL. При NULLудалении соответствующих строк из всех наборов коллекций удаляются. Чтобы получить это значение, выполните запрос к представлению syscollector_collection_sets каталога.
[ @duration = ] длительность
Максимальное число минут для выполнения операции очистки. @duration имеет небольшой размер с значением по умолчаниюNULL. Указываемое значение должно быть больше или равно нулю. Когда NULLоперация выполняется, пока не будут удалены все квалифицированные строки или операция будет остановлена вручную.
Значения кода возврата
0 (успешно) или 1 (сбой).
Замечания
Эта процедура выбирает строки в core.snapshots представлении, которые соответствуют удалению на основе периода хранения. Все строки, которые относятся к удалению, удаляются из core.snapshots_internal таблицы. Удаление устаревших строк приводит к каскадному удалению строк во всех таблицах хранилища данных управления. Указанная процедура выполняется с помощью предложения ON DELETE CASCADE, которое определено для всех таблиц, в которых хранятся собранные данные.
Каждый моментальный снимок и связанные с ним данные удаляются в пределах явной транзакции, а затем транзакция фиксируется. Таким образом, если операция очистки остановлена вручную или значение, указанное для @duration этого параметра, превышается, остаются только незафиксированные данные. Эти данные могут быть удалены во время следующего запуска задания.
Эта процедура должна выполняться в контексте базы данных хранилища данных управления.
Разрешения
Требуется членство в предопределенных роли базы данных mdw_admin (с разрешением EXECUTE).
Примеры
А. Запуск sp_purge_data без параметров
В следующем примере выполняется core.sp_purge_data без указания параметров. Поэтому значение NULL по умолчанию используется для всех параметров с соответствующим поведением.
USE <management_data_warehouse>;
EXECUTE core.sp_purge_data;
GO
B. Указание значений хранения и длительности
В следующем примере удаляются данные из хранилища данных управления, созданные более 7 дней назад. Кроме того, параметр указан таким образом, @duration чтобы операция выполнялось не более 5 минут.
USE <management_data_warehouse>;
EXECUTE core.sp_purge_data @retention_days = 7, @duration = 5;
GO
В. Указание имени экземпляра и набора коллекций
В следующем примере данные удаляются из хранилища данных управления для заданного набора коллекций в указанном экземпляре SQL Server. Так как @retention_days не указан, значение столбца valid_through в core.snapshots представлении используется для определения строк набора коллекций, которые могут быть удалены.
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