Мы провели тестирование на SQL Server 2014, когда у нас было 10 баз данных, 100 различных схем в каждой базе данных, 10 небольших (~ 50 строк) таблиц в каждой схеме (всего 10K таблиц), и мы создали полнотекстовые индексы для всех этих таблицы во всех этих базах данных одновременно.
Через несколько минут мы обнаружили, что SQL Server перестал принимать любые подключения (кроме ADMIN:.
подключения). Если мы перезапустим сервер, мы сможем подключиться, но через некоторое время он снова зависнет. После некоторого расследования мы обнаружили, что это вызвано потреблением всех рабочих потоков, dm_os_tasks
и dm_os_waiting_tasks
показали, что FT_MASTER_MERGE
в SUSPENDED
состоянии много ожидания . Мы погуглили «Полный текст ожидает главной операции слияния», но больше не нашли реальной информации об этом.
Мы пробовали разные конфигурации полнотекстового каталога: один каталог на БД, один каталог на схему, один каталог на индекс. В любом случае сервер зависает со всеми этими приостановленными задачами.
Какова основная причина ожидания, как это можно исправить / смягчить?
И каков рекомендуемый способ включить полнотекстовый формат для такого большого количества таблиц?
источник