REVISIÓN: Recibe mensajes de error al realizar un llenado de un índice de texto grande en SQL Server 2008 o en SQL Server 2008 R2

Microsoft distribuye correcciones de Microsoft SQL Server 2008 como un archivo descargable. Como las revisiones son acumulativas, cada versión nueva contiene todas las revisiones y revisión de todas las revisiones de seguridad que se incluyeron con la anterior de SQL Server 2008.

Síntomas

Síntoma 1

Al realizar un llenado de un índice de texto grande en Microsoft SQL Server 2008 o en Microsoft SQL Server 2008 R2, puede recibir un mensaje de error en el archivo de registro de texto. El número de veces que se registra este mensaje de error depende del tamaño de lote menos uno. Por ejemplo, en un equipo de 32 bits, el tamaño del lote es 1.000, por lo que se registra el error 999 veces. El mensaje de error similar al siguiente:
Error ' 0x8004cb04: La lista de palabras en memoria está dañada. Esto es debido a un defecto de filtro, separador de palabras u otro componente de indización.' se produjo durante el llenado de índice de texto completo para la tabla o vista indizada ' [smarsh]. [dbo]. [ArchiveMsgs]' (tabla o vista indizada ID ' 160719625', base de datos ID ' 7'), valor de clave de texto completo '291484087'. Se intentará volver a indizar se.
Después de recibir este mensaje de error, también puede recibir el siguiente mensaje de error para el tamaño del lote menos uno:
spid28s < fecha >< hora > Error '0x80040e28' al texto índice de llenado de la tabla o vista indizada ' [smarsh]. [dbo]. [ArchiveMsgs]' (tabla o vista indizada ID ' 160719625', base de datos ID ' 7'), valor de clave de texto completo '199598211'. Se intentará volver a indizar se.
Después de recibir este mensaje de error, también puede recibir el siguiente mensaje de error para el tamaño del lote menos uno:
Error de spid26s tiempo > < fecha >< ' 0x80043630: el proceso de demonio de filtro MSFTEFD agotado por una razón desconocida. Esto puede indicar un error en un filtro, separador de palabras o controlador de protocolo.' se produjo durante el llenado de índice de texto completo para la tabla o vista indizada ' [smarsh]. [dbo]. [ArchiveMsgs]' (tabla o vista indizada ID ' 160719625', base de datos ID ' 7'), valor de clave de texto completo '14304130'. Se intentará volver a indizar se.
Síntoma 2

Además, puede observar que el proceso de FDHOST.exe está funcionando mal. Cuando intenta ejecutar una consulta de texto completo o realizar un llenado de texto, recibirá el siguiente mensaje al cliente.
Msj 30053, nivel 16, estado 102, línea 1
Separación de palabras agotó el tiempo de espera para la cadena de consulta de texto completo. Esto puede ocurrir si el separador de palabras tardó mucho tiempo en procesar la cadena de consulta de texto completo, o si un gran número de consultas que se ejecuta en el servidor. Intente ejecutar la consulta otra vez bajo una carga más liviana.
Al examinar los registros SQLFT * para este catálogo, verá este mensaje de error:
Error '0 x 80004005' se produjo durante el llenado de índice de texto completo para la tabla o vista indizada ' [DBNAME]. [dbo]. [TABLENAMe]' (tabla o vista indizada ID ' 1204001724', base de datos ID ' 5'), valor de clave de texto completo '4'. Se intentará volver a indizar se.
Al examinar el registro de errores de SQL, verá este mensaje de error:
Error: 30089, gravedad: 17, estado: 1.
El proceso de host (FDHost) del demonio de filtro de texto completo se detuvo anormalmente. Esto puede ocurrir si un componente lingüístico configurado incorrectamente o no funciona correctamente, como un separador de palabras, lematizador o filtro ha provocado un error irrecuperable durante el proceso de indización o consulta de texto completo. El proceso se reiniciará automáticamente.

Causa

Este problema se produce debido a un error en la comunicación entre el proceso Sqlservr.exe y Fdhost.exe. Cuando se envían lotes del proceso Sqlservr.exe al proceso de Fdhost.exe, a veces la memoria compartida saliente (OSM), que es la memoria compartida de Sqlservr.exe a Fdhost.exe, tiene espacio suficiente para ajustarlo a la columna siguiente de un documento. Cuando esto ocurre, el proceso Sqlservr.exe envía un mensaje para notificar a la Fdhost.exe procesos todos los datos existentes en la OSM. Mientras el proceso de Fdhost.exe está procesando los datos, la memoria compartida entrante (ISM), que es la memoria compartida de Fdhost.exe a Sqlservr.exe, puede llenarse. En esta situación, el proceso de Fdhost.exe envía un mensaje de "rebobinar" para el proceso Sqlservr.exe. Este mensaje se solicita que el proceso Sqlservr.exe, volver a enviar el último documento de la primera columna. Sin embargo, cuando se inicia el proceso de Sqlservr.exe volver a enviar el documento, se inicia de la columna 2 en lugar de la columna 1. Esto hace que los mensajes de error que se mencionan en la sección "Síntomas".

Solución

Información de actualización acumulativa

Service Pack 2 de SQL Server 2008 R2

En primer lugar, la corrección para este problema se publicó en actualización acumulativa 3. Para obtener más información acerca de cómo obtener este paquete de actualización acumulativa para SQL Server 2008 R2 Service Pack 2, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
2754552 acum actualizar paquete 3 para SQL Server 2008 R2 Service Pack 2
Nota: Como las compilaciones son acumulativas, cada versión de corrección nueva contiene todas las revisiones y revisión de todas las revisiones de seguridad que se incluyeron con la anterior SQL Server 2008 R2 Service Pack 2. Le recomendamos que considere aplicar la versión más reciente de revisión que contenga este hotfix. Para obtener más información, haga clic en el siguiente número de artículo para verlo en Microsoft Knowledge Base:
2730301 the SQL Server 2008 R2 generaciones que se publicaron después del lanzamiento de SQL Server 2008 R2 Service Pack 2

SQL Server 2008

La corrección para este problema se publicó primero en la actualización acumulativa 4 para la versión comercial de SQL Server 2008. Para obtener más información acerca de cómo obtener este paquete de actualización acumulativa para SQL Server 2008, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
Paquete 4 de actualización de 963036 acumulativa para SQL Server 2008
Nota: Como las compilaciones son acumulativas, cada versión de corrección nueva contiene todas las revisiones y revisión de todas las revisiones de seguridad que se incluyeron con la anterior de SQL Server 2008. Le recomendamos que considere aplicar la versión más reciente de revisión que contenga este hotfix. Para obtener más información, haga clic en el siguiente número de artículo para verlo en Microsoft Knowledge Base:
956909 the SQL Server 2008 generaciones que se publicaron después del lanzamiento de SQL Server 2008

SQL Server 2008 Service Pack 1

La corrección para este problema se publicó primero en la actualización acumulativa 1 para SQL Server 2008 Service Pack 1. Para obtener más información acerca de cómo obtener este paquete de actualización acumulativa para SQL Server 2008, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
Paquete 1 de actualización de 969099 acumulativa para SQL Server 2008 Service Pack 1
Nota: Como las compilaciones son acumulativas, cada versión de corrección nueva contiene todas las revisiones y revisión de todas las revisiones de seguridad que se incluyeron con la anterior de SQL Server 2008. Le recomendamos que considere aplicar la versión más reciente de revisión que contenga este hotfix. Para obtener más información, haga clic en el siguiente número de artículo para verlo en Microsoft Knowledge Base:
970365 the SQL Server 2008 generaciones que se publicaron después del lanzamiento de SQL Server 2008 Service Pack 1

Solución alternativa

Para evitar este problema, aumente el tamaño ISM. Para ello, configure la variable ISM_Size mediante el procedimiento almacenado sp_fulltext_service .

Para mostrar el valor actual:
sp_fulltext_service 'ism_size'

Para cambiar el valor a 16:
sp_fulltext_service 'ism_size',@value=16

Nota: : Debe reiniciar el servicio SQL Server para que este cambio surta efecto.

Estado

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

Más información

Este problema no impide que la población de finalización. El índice de texto completo tiene una lógica de reintento integrado que seguirá intentando la entrada error hasta que lo logre. Por lo tanto, puede ignorar los mensajes de error. El único conocidos posibles efectos secundarios negativos son que puede tardar más de lo habitual para la población completar y el crecimiento del registro de texto aumenta significativamente por informar del error.

La lógica de reintento en el código fuente hace un eventual llenado correctamente sin daños en el índice, a pesar de que el mensaje de error que indica posibles errores.


Si está ejecutando en el síntoma 2 descritos anteriormente, a continuación, texto población o las consultas de búsqueda no funcionará, ya que el componente FDHOST no está en un estado correcto para la función y debe aplicar esta actualización acumulativa.

Más información sobre el paquete de actualización acumulativa 4 para SQL Server 2008

Para obtener más información acerca de qué archivos se cambian y para obtener información acerca de los requisitos previos para aplicar el paquete de actualización acumulativa que contiene la revisión que se describe en este artículo de Microsoft Knowledge Base, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
Paquete 4 de actualización de 963036 acumulativa para SQL Server 2008

Más información sobre el paquete de actualización acumulativa 1 de SQL Server 2008 Service Pack 1

Para obtener más información acerca de qué archivos se cambian y para obtener información acerca de los requisitos previos para aplicar el paquete de actualización acumulativa que contiene la revisión que se describe en este artículo de Microsoft Knowledge Base, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
Paquete 1 de actualización de 969099 acumulativa para SQL Server 2008 Service Pack 1

Referencias

Para obtener más información acerca de la lista de compilaciones disponibles después del lanzamiento de SQL Server 2008, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:

956909 the SQL Server 2008 generaciones que se publicaron después del lanzamiento de SQL Server 2008

Para obtener más información sobre el modelo de servicio Incremental de SQL Server, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:

935897 un modelo de servicio Incremental está disponible en el equipo de SQL Server para entregar revisiones para problemas detectados

Para obtener más información acerca del esquema de nomenclatura para las actualizaciones de SQL Server, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:

Paquetes de actualización de 822499 nuevo esquema de nomenclatura para software de Microsoft SQL Server

Para obtener más información acerca de la terminología de la actualización de software, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
824684 descripción de la terminología estándar que se utiliza para describir las actualizaciones de software de Microsoft
Propiedades

Id. de artículo: 963659 - Última revisión: 13 ene. 2017 - Revisión: 1

Comentarios