Поделиться через


Включение и отключение политик хранения данных

Внимание

Azure SQL Edge будет прекращена 30 сентября 2025 г. Дополнительные сведения и параметры миграции см. в уведомлении о выходе на пенсию.

Примечание.

Azure SQL Edge больше не поддерживает платформу ARM64.

В этой статье описывается включение и отключение политик хранения данных для базы данных и таблицы.

Включение хранения данных для базы данных

В следующем примере показано, как включить хранение данных с помощью ALTER DATABASE.

ALTER DATABASE [<DatabaseName>] SET DATA_RETENTION ON;

Проверка, включено ли хранение данных для базы данных

Следующая команда может использоваться для проверки включения хранения данных для базы данных.

SELECT is_data_retention_enabled,
    name
FROM sys.databases;

Включение хранения данных для таблицы

Для каждой таблицы, для которой необходимо автоматически очищать данные, хранение данных должно быть включено. Если хранение данных включено в базе данных и таблице, фоновая системная задача периодически сканирует таблицу, чтобы определить и удалить устаревшие (устаревшие) строки. Хранение данных можно включить в таблице во время создания таблицы с помощью CREATE TABLE или с помощью ALTER TABLE.

В следующем примере показано, как включить хранение данных для таблицы с помощью CREATE TABLE.

CREATE TABLE [dbo].[data_retention_table] (
    [dbdatetime2] DATETIME2(7),
    [product_code] INT,
    [value] CHAR(10),
    CONSTRAINT [pk_current_data_retention_table] PRIMARY KEY CLUSTERED ([product_code])
)
WITH (
        DATA_DELETION = ON (
            FILTER_COLUMN = [dbdatetime2],
            RETENTION_PERIOD = 1 day
            )
        );

Часть WITH (DATA_DELETION = ON (FILTER_COLUMN = [dbdatetime2], RETENTION_PERIOD = 1 day)) команды CREATE TABLE задает хранение данных в таблице. Команда использует следующие обязательные параметры:

  • DATA_DELETION. Указывает, находится ли хранение данных в режиме ON или OFF.

  • FILTER_COLUMN. Имя столбца в таблице, которое будет использоваться для определения того, устарели ли строки. Столбец фильтра может быть столбцом только со следующими типами данных:

    • date
    • smalldatetime
    • datetime
    • datetime2
    • datetimeoffset
  • RETENTION_PERIOD: целочисленное значение, за которым следует дескриптор единицы. Допустимые единицы: DAY, DAYS, WEEK, WEEKS, MONTH, MONTHS, YEAR и YEARS.

В следующем примере показано, как включить хранение данных для таблицы с помощью ALTER TABLE.

ALTER TABLE [dbo].[data_retention_table]
SET (
    DATA_DELETION = ON (
        FILTER_COLUMN = [timestamp],
        RETENTION_PERIOD = 1 day
    )
)

Проверка, включено ли хранение данных для таблицы

Следующую команду можно использовать, чтобы проверить таблицы, для которых включено хранение данных.

SELECT name,
    data_retention_period,
    data_retention_period_unit
FROM sys.tables;

Значение и data_retention_period_unit значение data_retention_period = -1 INFINITE указывает, что хранение данных не задано в таблице.

Следующий запрос можно использовать для идентификации столбца, используемого filter_column в качестве хранения данных.

SELECT name
FROM sys.columns
WHERE is_data_deletion_filter_column = 1
    AND object_id = object_id(N'dbo.data_retention_table', N'U');

Сопоставление параметров хранения данных базы данных и таблиц

Параметр хранения данных в базе данных и таблице используются совместно, чтобы определить, выполняется ли автозапуск для устаревших строк в таблицах.

Параметр базы данных Параметр таблицы Поведение
ВЫКЛ. ВЫКЛ. Политика хранения данных отключена, а автоматическая и ручная очистка устаревших записей отключена.
ВЫКЛ. DNS Политика хранения данных включена для таблицы. Автоматическая очистка устаревших записей отключена, однако метод очистки вручную можно использовать для очистки устаревших записей.
DNS ВЫКЛ. Политика хранения данных включена на уровне базы данных. Однако так как параметр отключен на уровне таблицы, очистка устаревших строк на основе хранения отсутствует.
DNS DNS Политика хранения данных включена как для базы данных, так и для таблиц. Автоматическая очистка устаревших записей включена.

Отключение хранения данных для таблицы

Хранение данных можно отключить в таблице с помощью ALTER TABLE. Следующую команду можно использовать для отключения хранения данных для таблицы.

ALTER TABLE [dbo].[data_retention_table]
SET (DATA_DELETION = OFF);

Отключение хранения данных для базы данных

Хранение данных можно отключить в таблице с помощью ALTER DATABASE. Следующую команду можно использовать для отключения хранения данных для базы данных.

ALTER DATABASE [<DatabaseName>] SET DATA_RETENTION OFF;