Оптимизация параметризованных фильтров строк
В этом разделе описывается оптимизация параметризованных фильтров строк в 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. Установите значение этого параметра на странице Параметры подписки диалогового окна Свойства публикации — <публикация>.
Дополнительные сведения об использовании мастера создания публикаций и доступе к диалоговому окну Свойства публикации — <публикация> см. в разделах: Создание публикации и Просмотр и изменение свойств публикации.
Задание настройки «Параметры секционирования» в диалоговом окне «Добавить фильтр» или «Редактировать фильтр»
На странице Фильтрация строк таблицы мастера создания публикаций или странице Фильтрация строк диалогового окна Свойства публикации — <публикация> щелкните Добавить и выберите Добавить фильтр.
Создайте параметризованный фильтр. Дополнительные сведения см. в разделе Определение и изменение параметризованного фильтра строк для статьи публикации слиянием.
Выберите параметр, который соответствует способу совместного использования данных подписчиками:
Строка из этой таблицы будет отправлена нескольким подпискам
Строка из этой таблицы будет отправлена только одной подписке
Если выбрана настройка Строка из этой таблицы будет отправлена только одной подписке, производительность репликации слиянием будет оптимизирована путем уменьшения объема хранимых и обрабатываемых метаданных. Однако следует убедиться, что данные секционированы таким образом, что одна строка не может быть реплицирована более чем одному подписчику. Дополнительные сведения см. в подразделе «Настройка параметров секционирования» раздела Параметризованные фильтры строк.
Нажмите кнопку ОК.
В диалоговом окне Свойства публикации — <публикация> нажмите кнопку ОК, чтобы сохранить результаты и закрыть диалоговое окно.
Настройка параметров секционирования в диалоговом окне «Свойства статьи — <статья>»
На странице Статьи мастера создания публикации или в диалоговом окне Свойства публикации — <публикация> выберите таблицу, затем щелкните Свойства статьи.
Щелкните Указать свойства выделенной статьи таблицы или Указать свойства всех статей таблиц.
В области Целевой объект вкладки Свойства диалогового окна Свойства статьи — <статья> укажите для настройки Параметры секции одно из следующих значений.
Перекрывающиеся
Перекрывающиеся, с запретом на изменение данных вне секции
Неперекрывающаяся, одиночная подписка
Неперекрывающиеся, общие для нескольких подписок
Дополнительные сведения об этих параметрах и о том, как они связаны с параметрами, доступными в диалоговых окнах Добавление фильтра и Изменение фильтра, см. в подразделе «Установка параметров секционирования» раздела Параметризованные фильтры строк.
Нажмите кнопку ОК.
В диалоговом окне Свойства публикации — <публикация> нажмите кнопку ОК, чтобы сохранить результаты и закрыть диалоговое окно.
Задание настройки «Предварительное вычисление секций»
На странице Параметры подписки диалогового окна Свойства публикации — <публикация> выберите значение параметра Предварительное вычисление секций. Это свойство доступно только для чтения если:
Публикация не отвечает требованиям, предъявляемым к предварительно вычисляемым секциям.
Для данной публикации еще не был создан моментальный снимок. В этом случае для данного параметра отображается значение Устанавливается автоматически при создании моментального снимка.
Нажмите кнопку ОК.
Задание настройки «Оптимизировать синхронизацию»
На странице Параметры подписки диалогового окна Свойства публикации — <публикация> выберите значение True для параметра Оптимизировать синхронизацию.
Нажмите кнопку ОК.
[Top]
Использование Transact-SQL
Определения параметров фильтрации для параметров @keep_partition_changes и @use_partition_groups см. в разделе sp_addmergepublication.
Указание оптимизации фильтра слияния при создании публикации
На издателе в базе данных публикации выполните процедуру sp_addmergepublication. Укажите параметр @publication и значение true для одного из следующих параметров.
@use_partition_groups — оптимизация для наивысшей производительности при условии, что статьи соответствуют требованиям предварительно вычисляемых секций. Дополнительные сведения см. в разделе Оптимизация производительности параметризованного фильтра с помощью предварительно вычисляемых секций.
@keep_partition_changes — применяется, если невозможно использовать предварительно вычисляемые секции.
Добавьте задание моментального снимка для публикации. Дополнительные сведения см. в разделе Создание публикации.
На издателе в базе данных публикации выполните хранимую процедуру sp_addmergearticle, указав следующие параметры:
@publication — имя публикации из шага 1;
@article — имя статьи;
@source_object — публикуемый объект базы данных;
@subset_filterclause — необязательное предложение параметризованного фильтра, которое используется для горизонтальной фильтрации статьи;
@partition_options — параметры секционирования для фильтруемой статьи.
Повторите шаг 3 для каждой статьи в публикации.
Чтобы определить фильтр соединения между двумя статьями, на издателе в базе данных публикации выполните процедуру sp_addmergefilter (необязательно). Дополнительные сведения см. в разделе Определение и изменение фильтра соединения между статьями публикации слиянием.
Просмотр и изменение поведения фильтра слияния для существующей публикации
На издателе в базе данных публикации выполните хранимую процедуру 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.
При необходимости запустите агент моментальных снимков для повторного создания моментального снимка (необязательно). Сведения об изменениях, после которых необходимо повторно создавать моментальный снимок, см. в разделе Изменение свойств публикации и статьи.
[Top]
См. также
Задания
Основные понятия
Определение и изменение параметризованного фильтра строк для статьи публикации слиянием