MSSQL_REPL027183
Область применения: SQL Server Управляемый экземпляр SQL Azure
Сведения о сообщении
Атрибут | Значение |
---|---|
Название продукта | SQL Server |
ИД события | 27183 |
Источник событий | MSSQLSERVER |
Компонент | Компонент SQL Server Database Engine |
Символическое имя | |
Текст сообщения | Процессу слияния не удалось перечислить изменения в статьях с параметризованными фильтрами строк. Если эта ошибка продолжает возникать, увеличьте тайм-аут запроса для этого процесса, уменьшите срок хранения публикации и оптимизируйте индексы по опубликованным таблицам. |
Описание
Эта ошибка появляется, если возникает тайм-аут агента слияния во время обработки изменений в фильтруемой публикации. Тайм-аут может быть вызван одной из следующих причин:
Не используется оптимизация предварительно вычисляемых секций.
Для фильтрации используется фрагментация индекса столбцов.
Большие объединенные таблицы метаданных, например MSmerge_tombstone, MSmerge_contentsи MSmerge_genhistory.
Фильтруемые таблицы, не соединенные уникальным ключом, и фильтры соединения, использующие большое количество таблиц.
Действие пользователя
Чтобы решить эту проблему, выполните указанные ниже действия.
Увеличьте для агента слияния значение параметра -QueryTimeOut , чтобы разрешить продолжение обработки, пока будут устраняться основные причины, вызывающие эту ошибку. Параметры агента могут задаваться в профилях агента или в командной строке. Дополнительные сведения см. в разделе:
По возможности используйте оптимизацию предварительно вычисляемых секций. Эта оптимизация используется по умолчанию в случае выполнения ряда требований к публикации. Дополнительные сведения об этих требованиях см. в статье Оптимизация производительности параметризованного фильтра с помощью предварительно вычисляемых секций. Если публикация не отвечает этим требованиям, рассмотрите возможность повторной разработки публикации.
Укажите наименьшее возможное значение срока хранения данной публикации, потому что репликация не может выполнять очистку метаданных в базах данных публикации и подписок, пока не истечет срок хранения. Дополнительные сведения см. в разделе Subscription Expiration and Deactivation.
Обслуживая репликацию слиянием, иногда проверяйте увеличение размера системных таблиц, связанных с репликацией слиянием: MSmerge_contents, MSmerge_genhistory, MSmerge_tombstone, MSmerge_current_partition_mappingsи MSmerge_past_partition_mappings. Время от времени проводите повторную индексацию этих таблиц. Дополнительные сведения см. в статье Реорганизация и перестроение индексов.
Убедитесь в том, что столбцы, используемые для фильтрации, надлежащим образом проиндексированы, и при необходимости перестройте такие индексы заново. Дополнительные сведения см. в статье Реорганизация и перестроение индексов.
Для фильтров соединения, основанных на уникальных столбцах, задайте свойство join_unique_key . Дополнительные сведения см. в статье Join Filters.
Ограничьте число таблиц, входящих в иерархию фильтра соединения. При создании фильтров соединения из пяти и более таблиц рассмотрите другие решения: не фильтруйте маленькие таблицы, таблицы, которые не изменяются или служат в основном таблицами подстановки. Используйте фильтры соединения только между теми таблицами, которые должны быть секционированы среди подписок.
Уменьшите количество изменений в фильтруемых таблицах между синхронизациями или чаще запускайте агент слияния. Дополнительные сведения о настройке расписаний синхронизации см. в разделе Specify Synchronization Schedules.