Поделиться через


Как оптимизировать параметризованные фильтры строк (программирование репликации на языке Transact-SQL)

При использовании параметризованных фильтров можно управлять обработкой фильтрами репликацией слиянием, если указать параметр use partition groups или keep partition changes при создании публикации. Эти параметры повышают производительность синхронизации для публикаций с отфильтрованными статьями, сохраняя дополнительные метаданные в базе данных публикации. Можно управлять совместным использованием данных подписчиками, настроив параметр partition options при создании статьи.

Дополнительные сведения об этих требованиях см. в разделе Параметризованные фильтры строк. Определения параметров фильтрации для параметров @keep_partition_changes и @use_partition_groups см. в разделе sp_addmergepublication.

Указание оптимизации фильтра слияния при создании публикации

  1. На издателе в базе данных публикации выполните процедуру sp_addmergepublication. Укажите параметр @publication и значение true для одного из следующих параметров.

  2. Добавьте задание моментального снимка для публикации. Дополнительные сведения см. в разделе Как создать публикацию (программирование репликации на языке Transact-SQL).

  3. На издателе в базе данных публикации выполните хранимую процедуру sp_addmergearticle, указав следующие параметры:

    • @publication — имя публикации из шага 1;

    • @article — имя статьи;

    • @source_object — публикуемый объект базы данных;

    • @subset_filterclause — необязательное предложение параметризованного фильтра, которое используется для горизонтальной фильтрации статьи;

    • @partition_options — параметры секционирования для фильтруемой статьи.

  4. Повторите шаг 3 для каждой статьи в публикации.

  5. Чтобы определить фильтр соединения между двумя статьями, на издателе в базе данных публикации выполните процедуру sp_addmergefilter (необязательно). Дополнительные сведения см. в разделе Как определить и изменить фильтр соединения между статьями публикации слиянием (программирование репликации на языке Transact-SQL).

Просмотр и изменение поведения фильтра слияния для существующей публикации

  1. На издателе в базе данных публикации выполните хранимую процедуру sp_helpmergepublication, указав параметр @publication (необязательно). Запомните значения keep_partition_changes и use_partition_groups в результирующем наборе.

  2. На издателе в базе данных публикации выполните процедуру sp_changemergepublication (необязательно). Укажите значение use_partition_groups в параметре @property и true или false в параметре @value.

  3. На издателе в базе данных публикации выполните процедуру sp_changemergepublication (необязательно). Укажите значение keep_partition_changes в параметре @property и true или false в параметре @value.

    ПримечаниеПримечание

    При включении параметра keep_partition_changes необходимо вначале отключить параметр use_partition_groups и указать значение 1 в параметре @force_reinit_subscription.

  4. На издателе в базе данных публикации выполните хранимую процедуру sp_changemergearticle (необязательно). Укажите значение partition_options в параметре @property и соответствующее значение в параметре @value. Определения этих параметров фильтрации см. в разделе sp_addmergearticle.

  5. При необходимости запустите агент моментальных снимков для повторного создания моментального снимка (необязательно). Сведения об изменениях, после которых необходимо повторно создавать моментальный снимок, см. в разделе Изменение свойств публикации и статей.