SQL Server 2008: Где таблица, хранимая отслеживания изменений?

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

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

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

8
задан Hassan Syed 11 February 2010 в 10:56
поделиться

3 ответа

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

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

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

4
ответ дан 5 December 2019 в 21:18
поделиться

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

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

1
ответ дан 5 December 2019 в 21:18
поделиться

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

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

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

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

Важная цитата:

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

2
ответ дан 5 December 2019 в 21:18
поделиться
Другие вопросы по тегам:

Похожие вопросы: