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


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

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

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

  • Перед началом работы выполните следующие действия.

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

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

    Среда SQL Server Management Studio

    Transact-SQL

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

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

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

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

Значок стрелки, используемый со ссылкой «В начало»[Top]

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

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

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

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

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

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

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

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

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

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

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

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

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

  4. Нажмите кнопку ОК.

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

Настройка параметров секционирования в диалоговом окне «Свойства статьи — <статья>»

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

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

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

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

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

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

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

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

  4. Нажмите кнопку ОК.

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

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

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

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

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

  2. Нажмите кнопку ОК.

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

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

  2. Нажмите кнопку ОК.

Значок стрелки, используемый со ссылкой «В начало»[Top]

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

Значок стрелки, используемый со ссылкой «В начало»[Top]

См. также

Задания

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

Основные понятия

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

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

Параметризованные фильтры строк