Texto completo: muitas FT_MASTER_MERGE aguardam no estado SUSPENDED após a criação de vários índices de texto completo (o servidor trava)

9

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_taskse dm_os_waiting_tasksnos mostrou que há muitas FT_MASTER_MERGEesperas no SUSPENDEDestado. 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?

Alexey F
fonte

Respostas:

3

Você precisará escalonar as operações em vez de fazer tudo de uma vez. O item Connect não fala em aceitar novas conexões. Mas, devido a essa espera, os threads não estão sendo liberados (no seu caso) e novas conexões não são possíveis.

Ref:

Este é um problema conhecido no SQL Server. No item de conexão:

Isso é causado pela maneira como nosso agendador de tarefas atual é configurado, resultando em várias operações de mesclagem mestre sendo enfileiradas, mas nunca sinalizadas. Para ficar claro, isso só acontece quando várias operações de indexação / reorganização são chamadas simultaneamente - a operação de indexação é concluída com perfeição e os resultados são consultáveis. É apenas a mesclagem mestre que expira e é agendada novamente para um período posterior.

Devido à complexidade da correção, decidimos esperar até o próximo grande lançamento antes de fazer a triagem. No momento, é recomendável escalonar as populações de índices para não causar problemas de tempo limite . Entre em contato se tiver mais alguma dúvida.

SqlWorldWide
fonte