SqlCeReplication: использовать ReinitializeSubscription перед каждой синхронизацией?

Я работаю над ошибкой в ​​устаревшем приложении Windows Mobile 5, которое использует репликацию SQL CE для синхронизации базы данных SQL CE с базой данных SQL Server 2005 или 2008 (с использованием репликации слиянием).

В приложении есть некоторое поведение, которое, я не думаю, связано с ошибкой, но мне было любопытно, каковы могут быть побочные эффекты. Код заканчивает тем, что вызывает "ReinitializeSubscription(true)" для объекта SqlCeReplication, прежде чем он вызывает Synchronize. Флаг "true" просто говорит reinit загружать любые изменения перед повторной инициализацией, и это нормально. Я не верю, что есть конкретная причина каждый раз переустанавливать сабвуфер, но это то, что он делает...

Каково влияние вызова ReinitializeSubscription на объект SqlCeReplication перед каждым вызовом Synchronize? Является ли это просто снижением производительности, или это на самом деле делает что-то другое с синхронизацией данных, по сравнению с отсутствием вызова ReinitializeSubscription перед синхронизацией?

1 ответ

Решение

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

Другие вопросы по тегам