Включение и отключение политик хранения данных
Внимание
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;