2010-02-11 2 views
8

У нас есть база данных, работающая на общем хосте через SQL Server 2008. Теперь мы находимся в позиции из-за ограничений производительности, когда нам нужно перемещать базу данных вместе с веб-сайтом. Мы используем отслеживание изменений в базе данных, чтобы клиенты могли синхронизироваться с использованием структуры синхронизации.SQL Server 2008: Где хранится таблица отслеживания изменений?

Мой вопрос: является ли таблица отслеживания изменений хранимой в базе данных способом, который означает, что при перемещении он останется на месте?

В настоящее время я участвую в изучении SQL Server, и более тонкие точки отслеживания изменений все еще меня вторгают. Понятно, что я действительно не понимаю «где» таблица отслеживания изменений.

+0

Пункты на победу: D –

+0

Хех, спасибо. Я уверен, что положил их, но хорошо! – Sergio

ответ

4

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

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

Внутренняя таблица, созданная путем включения отслеживания изменений на уровне таблицы, называется sys.change_tracking_[object id], где [object id] - это идентификатор объекта для целевой таблицы.

+0

Спасибо за ответ. Вам придется простить мое невежество, но если sys.syscommittab является скрытым и внутренним, это означает, что он отделен от базы данных и не будет включен в какую-либо резервную копию? Худший сценарий угадывания, мы перемещаем базу данных и теряем информацию отслеживания изменений, я думаю. – Sergio

+0

@Sergio: интересующий вопрос, не уверен. У меня будет копать ... –

1

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

Сначала я исследовал схему базы данных и использовал страницы MSDN.

+0

@ Hassan Syed: к сожалению, я не верю, что это правильно –

+0

Спасибо за ссылку на документы. читать сейчас – Sergio

1

Проанализировано, следует ли публиковать это как ответ, как обычно мне не нравится , давая ссылку, но в этом случае я хотел обобщить некоторые из пунктов, и это не будет хорошо, как комментарий!

This статья хорошо стоит прочитать, которая дает много подробностей о том, как отслеживание изменений и (и изменение сбора данных) работает.

Для отслеживания изменений, вы можете найти то, что внутренние таблицы используются для отслеживания изменений с помощью:

SELECT [name] FROM sys.internal_tables 
    WHERE [internal_type_desc] = 'CHANGE_TRACKING'; 

Важной цитаты:

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

Смежные вопросы