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


Оптимизация параметризованных фильтров строк

Область применения: SQL Server

В этом разделе описывается оптимизация параметризованных фильтров строк в SQL Server с помощью SQL Server Management Studio или Transact-SQL.

В этом разделе

Перед началом

Рекомендации

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

    При использовании подписчиков SQL Server Compact Server Compact keep_partition_changes должны иметь значение true, чтобы обеспечить правильность распространения удаления. При установке значения false подписчик может получить больше строк, чем ожидается.

Использование среды SQL Server Management Studio

Для оптимизации параметризованных фильтров строк можно воспользоваться следующими настройками:

Partition Options
Задайте этот параметр на странице "Свойства статьи" диалогового окна "Свойства статьи>" <или в диалоговом окне "Добавить фильтр". Оба диалоговых окна доступны в мастере создания публикаций и в диалоговом окне "Свойства публикации — <публикация> ". Диалоговое окно "Свойства статьи— статья>" <позволяет указать дополнительные значения этого параметра, недоступные в диалоговом окне "Добавление фильтра".

Предварительное вычисление секций
Если статьи публикации соблюдают ряд требований, то этот параметр по умолчанию имеет значение True . Дополнительные сведения об этих требованиях см. в статье Оптимизация производительности параметризованного фильтра с помощью предварительно вычисляемых секций. Измените этот параметр на странице "Параметры подписки" диалогового окна "Свойства публикации — <публикация> ".

Оптимизировать синхронизацию
Этот параметр должен иметь значение True только в том случае, если значение параметра Предварительное вычисление секций установлено равным False. Задайте этот параметр на странице "Параметры подписки" диалогового окна "Свойства публикации — <публикация> ".

Дополнительные сведения об использовании мастера создания публикации и доступе к диалоговому окне "Свойства публикации — публикация>" <см. в разделе "Создание публикации и просмотр и изменение свойств публикации".

Задание настройки «Параметры секционирования» в диалоговом окне «Добавить фильтр» или «Редактировать фильтр»

  1. На странице "Строки таблицы фильтра" мастера создания публикации или страницы "Фильтры строк" диалогового окна "Свойства публикации - Публикация>" <нажмите кнопку "Добавить" и нажмите кнопку "Добавить фильтр".

  2. Создайте параметризованный фильтр. Дополнительные сведения см. в статье Определение и изменение параметризованного фильтра строк для статьи публикации слиянием.

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

    • Строка из этой таблицы будет отправлена нескольким подпискам

    • Строка из этой таблицы будет отправлена только одной подписке

    Если выбрана настройка Строка из этой таблицы будет отправлена только одной подписке, производительность репликации слиянием будет оптимизирована путем уменьшения объема хранимых и обрабатываемых метаданных. Однако следует убедиться, что данные секционированы таким образом, что одна строка не может быть реплицирована более чем одному подписчику. Дополнительные сведения см. в подразделе «Настройка параметров секционирования» раздела Параметризованные фильтры строк.

  4. Нажмите ОК.

  5. Если вы находитесь в диалоговом окне "Свойства публикации — <публикация> ", нажмите кнопку "ОК ", чтобы сохранить и закрыть диалоговое окно.

Задание параметров секции в диалоговом окне "Свойства статьи" <>

  1. На странице статей мастера создания публикации или диалогового окна "Свойства публикации — публикация>" <выберите таблицу и щелкните "Свойства статьи".

  2. Щелкните Указать свойства выделенной статьи таблицы или Указать свойства всех статей таблиц.

  3. В разделе "Целевой объект" вкладки "Свойства статьи" диалогового окна "Свойства статьи>" <укажите одно из следующих значений для параметров секции:

    • Перекрывающиеся

    • Перекрывающиеся, с запретом на изменение данных вне секции

    • Неперекрывающаяся, одиночная подписка

    • Неперекрывающиеся, общие для нескольких подписок

    Дополнительные сведения об этих параметрах и о том, как они связаны с параметрами, доступными в диалоговых окнах Добавление фильтра и Изменение фильтра , см. в подразделе «Установка параметров секционирования» раздела параметризованные фильтры строк.

  4. Нажмите ОК.

  5. Если вы находитесь в диалоговом окне "Свойства публикации — <публикация> ", нажмите кнопку "ОК ", чтобы сохранить и закрыть диалоговое окно.

Задание настройки «Предварительное вычисление секций»

  1. На странице "Параметры подписки" диалогового окна "Свойства публикации — публикация>" <выберите значение для параметра "Предварительные секции". Это свойство доступно только для чтения если:

    • Публикация не отвечает требованиям, предъявляемым к предварительно вычисляемым секциям.

    • Для данной публикации еще не был создан моментальный снимок. В этом случае для данного параметра отображается значение Устанавливается автоматически при создании моментального снимка.

  2. Нажмите ОК.

Задание настройки «Оптимизировать синхронизацию»

  1. На странице "Параметры подписки" диалогового окна "Свойства публикации — публикация>" <выберите значение True параметра "Оптимизация синхронизации".

  2. Нажмите ОК.

Использование Transact-SQL

Определения параметров фильтрации для параметров @keep_partition_changes и @use_partition_groups см. в разделе sp_addmergepublication.

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

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

  2. Добавьте задание моментального снимка для публикации. Дополнительные сведения см. в статье о создании публикации.

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

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

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

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

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

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

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

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

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

  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. При необходимости запустите агент моментальных снимков для повторного создания моментального снимка (необязательно). Сведения об изменениях, после которых необходимо повторно создавать моментальный снимок, см. в статье Изменение свойств публикации и статьи.

См. также

Автоматическое формирование набора фильтров соединения между статьями публикации слиянием (среда SQL Server Management Studio)
Определение и изменение параметризованного фильтра строк для статьи публикации слиянием
Параметризованные фильтры строк