Síntomas

Suponga que tiene Microsoft SQL Server 2012, 2014, 2016 o 2017 instalado en un servidor. Considere los escenarios siguientes:

  • Escenarios 1:
    Tiene varios índices de texto completo a través de una o más bases de datos y llenado de los índices de texto completo finaliza casi al mismo tiempo.

  • Escenarios 2:
    Crear un catálogo de texto completo que contiene muchos de los índices de texto completo y finalizar el llenado de los índices de texto completo casi al mismo tiempo.

  • Escenarios 3:
    Volver a generar uno o más catálogos de texto completo en el que varios de los índices rellenar en o cerca del mismo tiempo.

  • 4 escenarios:
    Manual ejecute Alter reorganizar de catálogo de texto completo para un catálogo que contiene muchos de los índices de texto completo.

En cualquiera de estas situaciones, si activa el indicador de traza 7603 (TF) para generar el registro detallado para el llenado de texto para el registro de errores de SQL Server, verá mensajes similares a los siguientes:

Fecha y hora SPID IFTS: CFTWICrawl::Close, rastreo completo ha finalizado, la programación de una combinación maestra para CrawlType: 1, 7 DBid, catid 5, tid 13847411
Fecha y hora SPID CFTMasterMergeListManager::QueueMasterMerge en cola el elemento MM para DBid 7, catálogo 5, tblid 13847411
Fecha y hora SPID IFTS: CFTWIAutoCrawlFullPass::ExecUnit::DoUnitWork: encontrado rastreo existente, por lo que pasa de retorno sin el autocrawl completo, DBid 7 Catid 5 Objid 13847411


Además, verá una espera de 30 minutos de combinación maestra y el registro informa de que la combinación maestra como anulada:

Fecha y hora SPID IFTS: Se anularon los elementos de trabajo de combinación maestra porque esperó en preinit durante más de 30 minutos m_DBid 7, m_objid 13847411
Fecha y hora SPID No se realizó la operación de combinación maestra de advertencia DBid 7, objid 13847411, para consultar el índice será lento. Por favor, ejecutar alter fulltext catalog reorganizar.
Fecha y hora SPID CFTMasterMergeListManager::RemoveMasterMerge publicado el artículo MM para DBid 7, catálogo 5, tblid 13847411
Fecha y hora SPID La combinación maestra iniciada en el final del rastreo completo de la tabla o vista indizada ' [Rs1]. [dbo]. [Tabla1]' error con HRESULT = '0x80000049'. Id. de la base de datos es '7', id de la tabla 13847411, identificador de catálogo: 5.

Causa

La combinación maestra se ejecuta automáticamente al final de un llenado total o incremental por índice. El proceso de combinación maestra reduce el número de fragmentos para un índice de texto completo mantener consultas utilizando el índice de texto completo de cada afectado negativamente por el rendimiento del índice de texto completo.

El proceso de combinación maestra utiliza varios subprocesos para reducir la fragmentación de índice de texto completo. SQL Server limita al número de combinaciones maestras simultáneos que se ejecutan al mismo tiempo. Tan pronto como se alcance el umbral, ningún índice de texto completo que intenta ejecutar una combinación maestra experimentará un retraso de espera de 30 minutos. La actualización del índice de texto completo no se iniciará durante este período de espera. La combinación maestra se reanudará si ocurre una de las dos cosas siguientes:

  • Cuando el siguiente llenado incremental correcta completa y una combinación maestra inicia correctamente.

  • Ejecutar manualmente una combinación maestra ejecutando el comando siguiente:

    ALTER FULLTEXT CATALOG catalog_name REORGANIZE

    Tenga en cuenta que las dos opciones anteriores todavía pueden llegado al límite de combinación maestra según el número de combinaciones maestras que se ejecutan en el momento.

Solución alternativa

Para solucionar este problema, pruebe los métodos siguientes:

  • Método 1 (recomendado): limitar el número de índices de texto completo en el mismo catálogo. Recomendar 7 o menos. Tablas grandes deben estar en su propio catálogo de texto completo. Esto es una mejor práctica para el rendimiento al volver a generar o reorganizar índices. Este método puede ayudar al Change_tracking esAuto.  

  • Método 2: establecer Change_Trackingmanual , mediante el comando siguiente:

    ALTER FULLTEXT INDEX ON table_name set Change_tracking = Manual

    A continuación, crear trabajos de SQL Server para repartir cuando se ejecutan los llenados incrementales. Esto produce menos superposiciones cuando se ejecuta el siguiente llenado de índice de la combinación maestra.

Estado

Microsoft ha confirmado que se trata de un problema de los productos de Microsoft que se enumeran en la sección "Aplicable a".

¿Necesita más ayuda?

Ampliar sus conocimientos
Explorar los cursos
Obtener nuevas características primero
Unirse a Microsoft Insider

¿Le ha sido útil esta información?

¿Cuál es tu grado de satisfacción con la calidad del lenguaje?
¿Qué ha afectado a tu experiencia?

¡Gracias por sus comentarios!

×