Fizemos um teste no SQL Server 2014 quando tínhamos 10 bancos de dados, 100 esquemas diferentes em cada banco de dados, 10 de pequenas (~ 50 linhas) tabelas em cada esquema (portanto, 10K tabelas no total) e criamos índices de texto completo em todos esses tabelas em todos esses bancos de dados simultaneamente.
Em alguns minutos, descobrimos que o SQL Server parou para aceitar qualquer conexão (exceto a ADMIN:.
conexão). Se reiniciarmos o servidor, podemos conectar, mas em algum momento ele trava novamente. Após algumas investigações, descobrimos que isso é causado pelo consumo de todos os threads de trabalho dm_os_tasks
e dm_os_waiting_tasks
nos mostrou que há muitas FT_MASTER_MERGE
esperas no SUSPENDED
estado. Pesquisamos no Google que "O texto completo está aguardando a operação de mesclagem principal", mas não encontramos mais informações reais sobre ele.
Tentamos diferentes configurações de catálogo de texto completo: um catálogo por DB, um catálogo por esquema, um catálogo por índice. De qualquer forma, o servidor trava com todas essas tarefas suspensas.
Qual é a causa raiz das esperas, como isso pode ser corrigido / atenuado?
E qual é a maneira recomendada de ativar o texto completo em uma quantidade tão grande de tabelas?