Симптомы
Предполагается, что Microsoft SQL Server 2012, 2014 и 2016 2017 г., установленные на сервере. Рассмотрим следующие сценарии:
-
В сценарии 1:
Имеется несколько полнотекстовых индексов для одной или нескольких баз данных и почти то же самое время завершения заполнения этих полнотекстовых индексов. -
В сценарии 2:
Создать полнотекстовый каталог, содержащий несколько полнотекстовых индексов и почти то же самое время окончания заполнения этих полнотекстовых индексов. -
Сценарии 3:
Перестроение одного или нескольких полнотекстовых каталогов, в которых несколько индексов завершения заполнения или приближается к значению одновременно. -
Сценарии 4:
Можно запустить вручную изменить реорганизовать полнотекстовый каталог для каталога, содержащего много полнотекстовых индексов.
В любой из этих ситуаций при включении флага трассировки (TF) 7603 для вывода подробного ведения журнала для полнотекстового заполнения в журнал ошибок SQL Server появится сообщения следующего вида:
Дата и время SPID IFTS: CFTWICrawl::Close, полный обход содержимого завершен, планирование основное слияние для CrawlType: 1, DBid 7 catid tid 13847411, 5
Дата и время SPID CFTMasterMergeListManager::QueueMasterMerge мм элемента из очереди DBid 7, 5, tblid 13847411 каталога
Дата и время SPID IFTS: CFTWIAutoCrawlFullPass::ExecUnit::DoUnitWork: найти существующий обхода, поэтому возврат без autocrawl полной передачи DBid 7 Catid 5 Objid 13847411
Кроме того можно увидеть 30 минут ожидания основное слияние и журнала отчетов, объединение с главной копией как прервана:
Дата и время SPID IFTS: Основное слияние рабочих элементов прервана, поскольку, как это было в preinit для более чем 30 минут m_DBid 7, m_objid 13847411
Дата и время SPID Операции слияния главный предупреждение не было выполнено для DBid 7 objid 13847411, поэтому индекс запрос будет выполняться медленно. Пожалуйста выполнения alter реорганизовать полнотекстовый каталог.
Дата и время SPID CFTMasterMergeListManager::RemoveMasterMerge производство товара мм для DBid 7, 5, tblid 13847411 каталога
Дата и время SPID Объединение с главной копией начато в конце полное сканирование таблицы или индексированного представления "[DB1]. [dbo]. ["Table1"] "произошел сбой HRESULT ="0x80000049». Идентификатор базы данных "7", идентификатор таблицы 13847411 каталога ID: 5.
Причина
Объединение с главной копией выполняется автоматически в конце полного или добавочного заполнения каждого индекса. Объединение с главной копией уменьшается количество фрагментов для полнотекстового индекса для поддержания запросов, использующих полнотекстовый индекс из становится негативное воздействие на производительность полнотекстового индекса.
Объединение с главной копией процесс использует несколько потоков для уменьшения фрагментации на полнотекстовый индекс. SQL Server регулирует количество одновременных объединений с главной копией, выполняемых одновременно. Сразу после попадания пороговое значение любой полнотекстовый индекс, который пытается выполнить объединение с главной копией ощутит задержки 30 минут ожидания. Обновление полнотекстового индекса не начнется в течение этого периода ожидания. Объединение с главной копией возобновляется, если происходит одно из следующих условий:
-
При следующей успешной добавочное заполнение завершается и успешно запускается мастер слияния.
-
Запустить мастер слияния вручную, запустив следующую команду:
ALTER FULLTEXT CATALOG catalog_name REORGANIZE
Обратите внимание, что выше два варианта по-прежнему возможно попадание предел объединение с главной копией в зависимости от количества объединений с главной копией во время выполнения.
Временное решение
Чтобы обойти это, попробуйте следующие способы:
-
Метод 1 (рекомендуется): ограничить количество полнотекстовых индексов в одном каталоге. Рекомендовать 7 или меньше. Большие таблицы должны находиться в своих собственных полнотекстового каталога. Это рекомендуется для повышения производительности при перестроение или реорганизация индексов. Этот метод помогает при Change_tracking Auto.
-
Способ 2: Задайте Change_Trackingручной , с помощью следующей команды:
ALTER FULLTEXT INDEX ON table_name set Change_tracking = Manual
Затем создайте задания SQL Server чтобы рассредоточить при выполнении добавочное заполнение. В результате меньше перекрытия при запуске мастер слияния после заполнения индекса.
Статус
Корпорация Майкрософт подтверждает, что это проблема продуктов Майкрософт, перечисленных в разделе "Относится к".