Sintomas

Suponha que você tenha o Microsoft SQL Server 2012, 2014, 2016 ou 2017 instalado em um servidor. Considere os seguintes cenários:

  • Cenários de 1:
    Você tem vários índices de texto completo em um ou mais bancos de dados e população desses índices de texto completo termina quase o mesmo tempo.

  • Cenários de 2:
    Criar um catálogo de texto completo que contém muitos índices de texto completo e concluir a população desses índices de texto completo quase o mesmo tempo.

  • Cenários de 3:
    Reconstruir um ou mais catálogos de texto completo no qual vários índices concluir o preenchimento ou aproxima-se o mesmo tempo.

  • Cenários de 4:
    Você executar manualmente alterar reorganizar de catálogo de texto completo para um catálogo que contém muitos índices de texto completo.

Em qualquer dessas situações, se você ativar o sinalizador de rastreamento (TF) 7603 para a saída de log detalhado para preenchimento de texto completo para o log de erros do SQL Server, você verá mensagens semelhantes aos seguintes:

Data/hora SPID IFTS: CFTWICrawl::Close, rastreamento completo foi encerrada, agendando uma mesclagem mestre para CrawlType: 1, 7 DBid, catid 5, tid 13847411
Data/hora SPID CFTMasterMergeListManager::QueueMasterMerge na fila item MM DBid 7, 5, tblid 13847411 de catálogo
Data/hora SPID IFTS: CFTWIAutoCrawlFullPass::ExecUnit::DoUnitWork: encontrado rastreamento existente, para passar de retorno sem autocrawl completo, DBid 7 Catid 5 Objid 13847411


Além disso, você verá uma espera de 30 minutos para mesclagem mestre e o log reporta que mesclagem mestre como anulada:

Data/hora SPID IFTS: Itens de trabalho mesclagem mestre foram anulados porque ele esperou em preinit por mais de 30 minutos m_DBid 7, m_objid 13847411
Data/hora SPID Operação de mesclagem mestre de aviso não foi feita para DBid 7, objid 13847411, para que consultar o índice fique lento. Favor executar alter reorganizar de catálogo de texto completo.
Data/hora SPID CFTMasterMergeListManager::RemoveMasterMerge lançado item MM DBid 7, 5, tblid 13847411 de catálogo
Data/hora SPID A mesclagem mestre iniciada no final o rastreamento completo da tabela ou modo de exibição indexado ' [DB1]. [dbo]. [Tabela1]' falhou com HRESULT = '0x80000049'. ID do banco de dados é '7', id da tabela é 13847411, identificação do catálogo: 5.

Causa

A mesclagem mestre é executado automaticamente no final de uma população incremental ou completa por índice. O processo de mesclagem mestre reduz o número de fragmentos de um índice de texto completo evitar que consultas utilizando o índice de texto completo de se tornar afetados negativamente pelo desempenho do índice de texto completo.

o processo de mesclagem mestre usa vários threads para reduzir a fragmentação por índice de texto completo. SQL Server reduz o número de mesclagens mestras simultâneas que são executados ao mesmo tempo. Assim que o limite é alcançado, qualquer índice de texto completo que tenta executar uma mesclagem mestra sofrerá um atraso de 30 minutos de espera. A atualização do índice de texto completo não será iniciado durante esse período de espera. A mesclagem mestre será retomada se uma das seguintes duas coisas ocorre:

  • Quando a população incremental bem-sucedida próxima completa e uma mesclagem mestra for iniciado com êxito.

  • Executar uma mesclagem mestra manualmente, executando o seguinte comando:

    ALTER FULLTEXT CATALOG catalog_name REORGANIZE

    Observe que as duas opções acima podem ainda tiver atingido o limite de mesclagem mestre dependendo do número de mesclagens mestras em execução no momento.

Solução alternativa

Para contornar esse problema, tente os seguintes métodos:

  • Método 1 (recomendado): limitar o número de índices de texto completo no catálogo do mesmo. Recomendamos 7 ou menos. Tabelas grandes devem estar no seu próprio catálogo de texto completo. Essa é uma prática recomendada para o desempenho quando você recriar ou reorganizar índices. Esse método pode ajudar quando Change_tracking éAuto.  

  • Método 2: definir Change_Trackingmanual , usando o seguinte comando:

    ALTER FULLTEXT INDEX ON table_name set Change_tracking = Manual

    Em seguida, crie trabalhos do SQL Server espalhadas quando populações incrementais são executadas. Isso resulta em menos sobreposição quando executado após o preenchimento do índice de mesclagem mestre.

Status

A Microsoft confirma que este é um problema em seus produtos listados na seção "Aplica-se a".

Precisa de mais ajuda?

Expanda suas habilidades
Explore o treinamento
Obtenha novos recursos primeiro
Ingressar no Microsoft Insider

Essas informações foram úteis?

Qual é o seu grau de satisfação com a qualidade do idioma?
O que afetou sua experiência?

Obrigado pelos seus comentários!

×