Новый Trace Flag, разрешающий модификацию Singleton для репликации транзакций

ПУБЛИКАЦИИ  

По материалам статьи Микрософт: INF: New Trace Flag to Enable Singleton Update for Transactional Replication

Информация в этой статье относится к Microsoft SQL Server 2000 Standard и Enterprise Edition

Если Вы обновляете какой - либо столбец, который является частью уникального или составного индекса, SQL Server осуществляет обновление как отложенную модификацию. Отложенная модификация означает, что UPDATE передан на subscriber как пара операций: DELETE и INSERT. Отложенная модификация описана более подробно в следующей статье Microsoft Knowledge Base:
Q238254 INF: UPDATE Statements May be Replicated as DELETE/INSERT Pairs
Многие могут решить, что посылка модификации подписчикам в виде операций DELETE и INSERT не обеспечит некоторые их потребности. Например, бизнес - правила могут требовать, чтобы на subscriber передавались триггеры на обновление. Именно для того, чтобы помочь правильно разрешить эту ситуацию, введён новый флаг трассировки: 8207, который представлен в SQL Server 2000 service pack 1, и при использовании которого допускается модификация singleton при репликации транзакций. Обновление уникального столбца, которое затрагивает только одну строку (singleton модификация) осуществляется как UPDATE, а не как пара операций DELETE и INSERT. Если изменения затрагивают несколько строк, модификация все ещё будет выполняться, как пара DELETE и INSERT.
Вы можете задать ключ трассировки 8207 на сервере - издателе, воспользовавшись любым из следующих методов:

Вариант 1. Выполните следующий запрос в SQL Server Query Analyzer:

DBCC TRACEON (8207, -1)

ОБРАТИТЕ ВНИМАНИЕ: Вы должны повторно исполнять этот запрос после каждого перезапуска SQL Server.

Вариант 2.

Если Вы хотите что бы флаг трассировки 8207 был включен постоянно, то:

- Остановите сервис MSSQLServer.
- Добавьте к параметрам запуска ключ -T8207. Ключ -T8207 можно добавить в SQL Enterprise Manager: Щелкните правой кнопкой мыши по имени сервера, и затем щелкните Properties. В диалоговом окне Properties, щелкните по вкладке General, и затем щелкните Startup Parameters. Добавьте флаг трассировки.
- Запустите сервис MSSQLServer.

После этого, обновление уникального столбца, затрагивающее только одну строку (singleton модификация) будет исполняться, как UPDATE, а не как пара DELETE и INSERT. Если модификация затрагивает несколько строк, она будет состоять из пары DELETE и INSERT.

Важно: Как правило, Вы используете ключ трассировки 8207 в варианте read-only репликации транзакций. Не используйте этот ключ в варианте с обновляемыми (updatable) подписками, если модификация первичного ключа может происходить на subscriber.

Для получения дополнительной информации, прочтите разделы "Trace Flags" и "Using Startup Options" в SQL Server Books Online.


Перевод: Александра Гладченко  2001г.

ПУБЛИКАЦИИ

Скачать электронную карту Ангарска бесплатно
Сайт управляется системой uCoz