Отслеживание изменений в корпоративной базе данных SQL Server - Сравнение отслеживания изменений и сбора данных изменений

ОГЛАВЛЕНИЕ

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

Рис. 4 предоставляет попунктовое сравнение отслеживания изменений и сбора данных изменений, позволяя получить лучшее представление о серьезных различиях, актуальных для администраторов баз данных. Из таблицы можно увидеть, что сбор данных изменений намного тяжеловеснее отслеживания изменений. Он требует большего внимания при принятии решений о том, что отслеживать, в силу потенциала к быстрому росту размера таблицы отслеживания, если, скажем, отслеживаемая таблица содержит столбцы BLOB или очень широкие строки. Возможны также проблемы с управлением журналом транзакций, поскольку журнал не будет обрезаться, пока средство чтения журнала не собрало записи из него.

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

Функция Отслеживание изменений Сбор данных изменений
Синхронность Да Нет
Требуется агент SQL Нет Да
Требуется ведение полного журнала или пакетных операций Нет Да
Предотвращает обрезание журнала Нет Да, пока записи журнала не собраны
Требуется изоляция снимков Рекомендуется Нет
Требуются отдельные таблицы для хранения данных отслеживания Да Да
Требуется первичный ключ Да Не по умолчанию
Допускается размещение таблиц отслеживания Нет Да
Потенциальные проблемы с потреблением пространства Некоторые Масса
Автоматический процесс очистки Да Да
Ограничения на DDL Да Нет
Необходимые разрешения для включения Администратор системы Владелец базы данных

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

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

Обе функции хорошо работают с BACKUP и RESTORE. Проблема возникает тогда, когда база данных восстанавливается и по сути оказывается отброшенной назад во время. Как должны вести себя приложение/система в целом? Специальные решения, разработанные для отслеживания изменений, также сталкиваются с этой проблемой, и о ней следует помнить при использовании SQL Server 2008.

Как и всегда, убедитесь в том, что прочли всю доступную документацию (technet.microsoft.com/library/bb418491) и любые существующие технические документы, перед тем, как браться за работу над проектом, включающим новые функции отслеживания изменений. В первую очередь следует узнать, не могут ли быть применимы к вашему случаю какие-либо проблемы, не освещенные в этой статье. Следует также узнать подробности о новых пакетах обновления и динамических административных представлениях для наблюдения.

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

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


Автор: Пол С. Рэндал
Иcточник: TechNet Magazine
Опубликована - 03.12.2008