Кто-нибудь знает, для чего используется таблица __syncTransactions?Вот мой сценарий:
У нас мало клиентов, работающих на базе данных SQL Server Compact, синхронизирующихся с базой данных сервера SQL Server 2008 Express с использованием Sync Framework v3.5 в течение примерно года.Похоже, что для таблиц с большим количеством записей (т. Е.> 20000) синхронизация примерно занимает более минуты, а процессор также достигает 100%.
После включения ведения журнала трассировки синхронизации мне удалось сузитьзапрос, который был позади медленной синхронизации.Ниже приведен запрос, который проверяет вставки в клиентскую базу данных для одной из таблиц, содержащих ~ 70 000 записей:
выберите ut. * Из
(выберите ut0. * Из [tblPermissionGroupResourceRole] как ut0, где
(ut0 ._ sysTrackingContext <> 'a4e40127-4083-4b27-88d0-ef3aed4ae343' ИЛИ ut0. _sysTrackingContext IS NULL)
И (ut0 ._ sysChangeTxBsn> = 948) = 91013 * И (ut0. _sysInsertTxBsn NOT IN (ВЫБРАТЬ SyncBsn ОТ __syncTransactions))
) как ut ВЛЕВО НАРУЖНОЕ СОЕДИНЕНИЕ
(выберите txcs0. * Из _ sysTxCommitSequence в качестве txcs0) в качестве txcs ON (ut. _sysInsertTxBsn = txcs ._ sysTxBsn) WHERE
COALESCE (txcs. _sysTxCsn, ut ._ 68xs) (sysIn). _sysTxCsn, ut .__ sysInsertTxBsn) <= 9487480 </p>
Я выделил строку, выполнение которой занимает примерно 1 минуту.Причина в том, что таблица __syncTransaction содержит около 1200 записей, и из-за перекрестной ссылки с 70 000 нечетных записей в моей таблице tblPermissionGroupResourceRole запрос выполняется довольно медленно.
Поэтому мне нужно понять, как используется таблица __syncTransactions, поэтому яможно попробовать очистить записи из этой таблицы или есть ли другой способ решить мою проблему?
Любая помощь очень ценится.
С уважением, Сасанка.