Оптимизация производительности слияния репликаций с использованием условного отслеживания удалений

Замечание

Эта функция будет удалена в будущей версии Microsoft SQL Server. Избегайте использования этого компонента в новых разработках и запланируйте изменение существующих приложений, в которых он применяется.

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

Замечание

Чтобы использовать статьи только для скачивания, уровень совместимости публикации должен быть не менее 90RTM.

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

  • Приложение для службы мобильных продаж обычно содержит таблицы, такие как SalesOrderHeader, SalesOrderDetail и Product. Заказы вводятся на подписчике, а затем реплицируются на издателя, который часто предоставляет данные в систему выполнения заказов. Многие мобильные работники используют портативные устройства с ограниченным хранилищем: после того, как заказ получен издателем, его можно удалить у подписчика. Удаление не распространяется на издателя, так как заказ по-прежнему активен в системе.

    В этом сценарии удаления не будут отслеживаться для таблиц SalesOrderHeader и SalesOrderDetail . Удаление будет отслеживаться для таблицы "Продукт ", так как если продукт удаляется на издателе, удаление должно быть отправлено подписчику, чтобы сохранить список продуктов в актуальном состоянии.

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

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

Это важно

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

Указание того, что удаления не должны отслеживаться

См. также

Параметры статьи для репликации слиянием
Оптимизация производительности репликации слияния с использованием объектов Download-Only