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


Сравнение системы отслеживания измененных данных и системы отслеживания изменений

SQL Server 2008 предоставляет две функции отслеживания, позволяющие приложениям определять DML-изменения (операции вставки, обновления и удаления) в пользовательских таблицах базы данных. До того как появились эти функции, в приложениях необходимо было реализовывать пользовательские средства отслеживания. Эти средства часто требовали изменений в схемах отслеживаемых таблиц или применение триггеров. Ни система отслеживания измененных данных, ни система отслеживания изменений не нуждаются в изменениях схем отслеживаемых таблиц или триггерах.

Система отслеживания измененных данных

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

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

Принципиальная схема системы отслеживания измененных данных

Отслеживание изменений

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

На следующем рисунке показан сценарий синхронизации, при котором оптимальным является отслеживание изменений. В этом сценарии приложению требуются следующие данные: все строки таблицы, измененные с момента последней синхронизации, и только текущие данные строк. Поскольку для отслеживания изменений используется синхронный механизм, приложение может выполнить двустороннюю синхронизацию и уверенно определить возможные конфликты.

Принципиальная схема отслеживания измененных данных

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

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

Возможность

Система отслеживания измененных данных

Система отслеживания изменений

Отслеживаемые изменения

DML-изменения

Да

Да

Отслеживаемые данные

Данные журнала

Да

Нет

Изменение столбца

Да

Да

Тип DML

Да

Да

См. также

Основные понятия

Другие ресурсы