Автоматическая очистка отслеживания изменений MS SQL Server 2012 не работает

Я включил отслеживание изменений в моей базе данных Trans и таблице Employee.

ALTER DATABASE [Trans]
SET CHANGE_TRACKING = ON
( CHANGE_RETENTION = 5 MINUTES , AUTO_CLEANUP = ON)

ALTER TABLE [Employee]
ENABLE CHANGE_TRACKING
WITH ( TRACK_COLUMNS_UPDATED = OFF )

Я сделал некоторые обновления в своих таблицах сотрудников, а затем проверил данные в отслеживании изменений.

SELECT * FROM CHANGETABLE(CHANGES [Employee], 0) AS ETbl

Он показывает данные, которые изменились. Я знаю, что процесс очистки асинхронный, поэтому я ждал немного дольше, чем период хранения (скажем, 8 минут). Я все еще получаю результат с запросом. Процесс очистки выполняется через 2 дня.

Я искал в Интернете об этом

Автоматическая очистка отслеживания изменений не работает

Очистка отслеживания изменений

но не нашел правильного ответа.


person Dipesh Jain    schedule 26.08.2016    source источник


Ответы (1)


Автоматическая очистка отслеживания изменений — это фоновый поток, который активируется каждые 30 минут и выполняет итерацию по списку таблиц, для которых включено отслеживание изменений.

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

person Madhan Kumar    schedule 08.08.2017