Published on

April 27, 2012

Понимание отслеживания изменений и захвата изменений в SQL Server

Отслеживание изменений (CT) и захват изменений (CDC) – это две функции, которые были добавлены в SQL Server в 2008 году. Несмотря на то, что они могут показаться похожими на первый взгляд, они служат разным целям и могут использоваться в разных ситуациях.

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

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

Захват изменений (CDC)

Захват изменений – это более известная функция, которая предоставляет полную историю изменений, внесенных в таблицу. При включении CDC создается таблица изменений, которая является копией исходной таблицы с дополнительными столбцами, содержащими метаданные. Для каждой операции DML (вставка, обновление, удаление) в таблицу изменений добавляется соответствующая строка. Вставки получают одну строку (новые данные), удаления получают одну строку (старые данные), а обновления получают две строки (старые и новые данные). Хотя CDC предлагает множество исторической информации, он также генерирует значительное количество данных. Важно регулярно извлекать необходимую информацию и обрезать таблицы изменений для управления размером базы данных.

Выбор правильной функции

При выборе между CT и CDC важно понимать их различия и оценивать, какая из них лучше подходит для ваших потребностей. В документации Microsoft’s Books Online (BOL) представлено сравнение двух функций, которое может помочь в принятии обоснованного решения. Однако лучший подход – потратить время на работу с обеими функциями на нескольких таблицах, включая их по очереди, и тестировать их с различными изменениями рабочей нагрузки. Оценив результаты, вы сможете определить, какая функция более подходит для ваших конкретных требований. Также возможно, что вам придется использовать CT в некоторых сценариях и CDC в других, в зависимости от последующей обработки данных.

Как отслеживание изменений, так и захват изменений – это мощные инструменты в SQL Server, которые могут улучшить возможности управления данными. Понимание их тонкостей и экспериментирование с ними позволят вам эффективно использовать их преимущества.

Подписано: Блог

Теги: CDC, SQL Server, синдицированный

Click to rate this post!
[Total: 0 Average: 0]

Let's work together

Send us a message or book free introductory meeting with us using button below.