Как оптимизировать параметризованные фильтры строк (программирование репликации на языке Transact-SQL)
При использовании параметризованных фильтров можно управлять обработкой фильтрами репликацией слиянием, если указать параметр use partition groups или keep partition changes при создании публикации. Эти параметры повышают производительность синхронизации для публикаций с отфильтрованными статьями, сохраняя дополнительные метаданные в базе данных публикации. Можно управлять совместным использованием данных подписчиками, настроив параметр partition options при создании статьи.
Дополнительные сведения об этих требованиях см. в разделе Параметризованные фильтры строк. Определения параметров фильтрации для параметров @keep_partition_changes и @use_partition_groups см. в разделе sp_addmergepublication.
Указание оптимизации фильтра слияния при создании публикации
На издателе в базе данных публикации выполните процедуру sp_addmergepublication. Укажите параметр @publication и значение true для одного из следующих параметров.
@use_partition_groups — оптимизация для наивысшей производительности при условии, что статьи соответствуют требованиям предварительно вычисляемых секций. Дополнительные сведения см. в разделе Оптимизация производительности параметризованного фильтра с помощью предварительно вычисляемых секций.
@keep_partition_changes — применяется, если невозможно использовать предварительно вычисляемые секции.
Добавьте задание моментального снимка для публикации. Дополнительные сведения см. в разделе Как создать публикацию (программирование репликации на языке Transact-SQL).
На издателе в базе данных публикации выполните хранимую процедуру sp_addmergearticle, указав следующие параметры:
@publication — имя публикации из шага 1;
@article — имя статьи;
@source_object — публикуемый объект базы данных;
@subset_filterclause — необязательное предложение параметризованного фильтра, которое используется для горизонтальной фильтрации статьи;
@partition_options — параметры секционирования для фильтруемой статьи.
Повторите шаг 3 для каждой статьи в публикации.
Чтобы определить фильтр соединения между двумя статьями, на издателе в базе данных публикации выполните процедуру sp_addmergefilter (необязательно). Дополнительные сведения см. в разделе Как определить и изменить фильтр соединения между статьями публикации слиянием (программирование репликации на языке Transact-SQL).
Просмотр и изменение поведения фильтра слияния для существующей публикации
На издателе в базе данных публикации выполните хранимую процедуру sp_helpmergepublication, указав параметр @publication (необязательно). Запомните значения keep_partition_changes и use_partition_groups в результирующем наборе.
На издателе в базе данных публикации выполните процедуру sp_changemergepublication (необязательно). Укажите значение use_partition_groups в параметре @property и true или false в параметре @value.
На издателе в базе данных публикации выполните процедуру sp_changemergepublication (необязательно). Укажите значение keep_partition_changes в параметре @property и true или false в параметре @value.
Примечание При включении параметра keep_partition_changes необходимо вначале отключить параметр use_partition_groups и указать значение 1 в параметре @force_reinit_subscription.
На издателе в базе данных публикации выполните хранимую процедуру sp_changemergearticle (необязательно). Укажите значение partition_options в параметре @property и соответствующее значение в параметре @value. Определения этих параметров фильтрации см. в разделе sp_addmergearticle.
При необходимости запустите агент моментальных снимков для повторного создания моментального снимка (необязательно). Сведения об изменениях, после которых необходимо повторно создавать моментальный снимок, см. в разделе Изменение свойств публикации и статей.