KB963659: recibe mensajes de error cuando realiza una población para un índice de texto grande en SQL Server 2008 o en SQL Server 2008 R2

Se aplica a: SQL Server 2008 StandardSQL Server 2008 EnterpriseSQL Server 2008 Developer

Microsoft distribuye las soluciones de Microsoft SQL Server 2008 como un archivo que se puede descargar. Debido a que las correcciones son acumulativas, cada versión nueva contiene todas las revisiones y todas las revisiones de seguridad incluidas en la versión anterior de SQL Server 2008 Fix.

Síntomas


Síntoma 1Cuando realiza una población para 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 completo. El número de veces que se registra este mensaje de error depende del tamaño del lote menos uno. Por ejemplo, en un equipo de 32 bits, el tamaño del lote es 1.000, por lo que el error se registra 999 veces. El mensaje de error es similar al siguiente:
Error "0x8004cb04: la forma de palabras en memoria está dañada. Esto se debe a un filtro defectuoso, un separador de separador u otro componente de indización. ' durante el rellenado de índice de texto completo para la tabla o vista indizada ' [smarsh]. [dbo]. [ArchiveMsgs] ' (ID. de tabla o vista indizada ' 160719625 ', ID de base de datos ' 7 '), valor de clave de texto completo ' 291484087 '. Se intentará volver a indizar.
Después de recibir este mensaje de error, es posible que también reciba el siguiente mensaje de error para el tamaño del lote menos uno:
<fecha> <hora> error spid28s "0x80040e28" durante el rellenado de índice de texto completo para la tabla o vista indizada ' [smarsh]. [dbo]. [ArchiveMsgs] ' (ID. de tabla o vista indizada ' 160719625 ', ID de base de datos ' 7 '), valor de clave de texto completo ' 199598211 '. Se intentará volver a indizar.
Después de recibir este mensaje de error, es posible que también reciba el siguiente mensaje de error para el tamaño del lote menos uno:
<fecha> <hora> error spid26s ' 0x80043630: el proceso MSFTEFD del demonio de filtro ha agotado el tiempo de espera por razones desconocidas. Esto puede indicar un error en un filtro, un separador de separador o un controlador de protocolo. ' durante el rellenado de índice de texto completo para la tabla o vista indizada ' [smarsh]. [dbo]. [ArchiveMsgs] ' (ID. de tabla o vista indizada ' 160719625 ', ID de base de datos ' 7 '), valor de clave de texto completo ' 14304130 '. Se intentará volver a indizar.
Síntoma 2Además, es posible que observe que el proceso FDHOST. exe no funciona correctamente. Cuando intenta ejecutar una consulta de texto o realizar un llenado de texto, recibe el siguiente mensaje de vuelta al cliente.
MSG 30053, LEVEL 16, State 102, line 1Word Time agotód para la cadena de consulta de texto completo. Esto puede ocurrir si el separador de separador tarda mucho en procesar la cadena de consulta de texto o si se está ejecutando un gran número de consultas en el servidor. Intente ejecutar la consulta de nuevo con una carga más ligera.
Al examinar los registros de SQLFT * para este catálogo, observará este mensaje de error:
Error ' 0x80004005 ' durante el rellenado de índice de texto completo para la tabla o vista indizada ' [DBNAME]. [dbo]. [TABLENAMe] ' (ID. de tabla o vista indizada ' 1204001724 ', ID de base de datos ' 5 '), valor de clave de texto completo ' 4 '. Se intentará volver a indizar.
Al examinar el mensaje de error de SQL, observará este mensaje de error:
Error: 30089, gravedad: 17, estado: 1. el proceso de host del demonio de filtro de texto completo (FDHost) se ha detenido de forma anormal. Esto puede ocurrir si un componente lingüístico mal configurado o con problemas de funcionamiento, como un separador de separador, un analizador lingüístico o un filtro ha provocado un error irrecuperable durante la indización de texto completo o el procesamiento de consultas. 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 el proceso Fdhost. exe. Cuando los lotes se envían desde el proceso Sqlservr. exe al proceso Fdhost. exe, a veces la memoria compartida saliente (OSM), que es la memoria compartida de sqlservr. exe a Fdhost. exe, no tiene suficiente espacio para que se ajuste a la siguiente columna de un documento. Cuando esto sucede, el proceso Sqlservr. exe envía un mensaje para notificar al proceso Fdhost. exe que procese todos los datos existentes en la OSM. Mientras el proceso Fdhost. exe está procesando los datos, la memoria compartida entrante (ISM), que es la memoria compartida de Fdhost. exe a sqlservr. exe, puede estar llena. En esta situación, el proceso Fdhost. exe envía un mensaje "rebobinar" al proceso Sqlservr. exe. Este mensaje solicita que el proceso Sqlservr. exe vuelva a enviar el último documento desde la primera columna. Sin embargo, cuando el proceso Sqlservr. exe comienza a enviar el documento de nuevo, comienza desde la columna 2 en lugar de la columna 1. Esto provoca los mensajes de error que se mencionan en la sección "síntomas".

Resolución


Información sobre la actualización acumulativa

Service Pack 2 de SQL Server 2008 R2

La corrección para este problema se publicó por primera vez en la actualización acumulativa 3. Para obtener más información sobre 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 Paquete de actualización acumulativa 3 para SQL Server 2008 R2 Service Pack 2
Nota Como las compilaciones son acumulativas, cada nueva versión de corrección contiene todas las revisiones y todas las revisiones de seguridad que se incluían en la versión anterior de corrección de SQL Server 2008 R2 Service Pack 2. Le recomendamos que considere la posibilidad de aplicar la versión de corrección más reciente que contenga este Hotfix. Si desea obtener más información, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
2730301 Las compilaciones de SQL Server 2008 R2 que se publicaron después de que se publicó SQL Server 2008 R2 Service Pack 2

SQL Server 2008

La corrección para este problema se publicó por primera vez en la actualización acumulativa 4 para la versión de lanzamiento de SQL Server 2008. Para obtener más información sobre 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:
963036 Paquete de actualización acumulativa 4 para SQL Server 2008
Nota Como las compilaciones son acumulativas, cada nueva versión de corrección contiene todas las revisiones y todas las revisiones de seguridad incluidas en la versión anterior de corrección de SQL Server 2008. Le recomendamos que considere la posibilidad de aplicar la versión de corrección más reciente que contenga este Hotfix. Si desea obtener más información, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
956909 Las compilaciones de SQL Server 2008 que se publicaron después de que se publicó SQL Server 2008

Service Pack 1 de SQL Server 2008

La corrección para este problema se publicó por primera vez en la actualización acumulativa 1 para SQL Server 2008 Service Pack 1. Para obtener más información sobre 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:
969099 Paquete de actualización acumulativa 1 para SQL Server 2008 Service Pack 1
Nota Como las compilaciones son acumulativas, cada nueva versión de corrección contiene todas las revisiones y todas las revisiones de seguridad incluidas en la versión anterior de corrección de SQL Server 2008. Le recomendamos que considere la posibilidad de aplicar la versión de corrección más reciente que contenga este Hotfix. Si desea obtener más información, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
970365 Las compilaciones de SQL Server 2008 que se lanzaron después de publicar SQL Server 2008 Service Pack 1

Solución alternativa


Para solucionar este problema, aumente el tamaño de ISM. Para ello, configure la variable ISM_Size con el sp_fulltext_service procedimiento almacenado. Para mostrar el valor actual:sp_fulltext_service ' ism_size ' para cambiar el valor a 16:sp_fulltext_service ' ism_size ', @value = 16Nota: deberá 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 enumerados en la sección "Se aplica a".

Más información


Este problema no impide que se complete el rellenado. El índice de texto completo tiene una lógica de reintento integrada que continuará reintentando la entrada fallida hasta que tenga éxito. Por lo tanto, puede ignorar los mensajes de error sin problemas. Los únicos efectos negativos potenciales posibles son que puede demorar más de lo habitual para que se complete la población y el aumento del registro de texto completo se incremente significativamente por los informes del error. La lógica de reintentos en el código fuente causa un rellenado final correctamente sin dañar el índice, a pesar del mensaje de error que indica posibles daños. Si se encuentra con síntoma #2 descrita anteriormente, las consultas de búsqueda de texto o los rellenos no funcionarán porque el componente FDHOST no se encuentra en un estado correcto para funcionar y tendrá que 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 han cambiado y para obtener información sobre los requisitos previos para aplicar el paquete de actualización acumulativa que contiene el hotfix 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:
963036 Paquete de actualización acumulativa 4 para SQL Server 2008

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

Para obtener más información acerca de qué archivos se han cambiado y para obtener información sobre los requisitos previos para aplicar el paquete de actualización acumulativa que contiene el hotfix 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:
969099 Paquete de actualización acumulativa 1 para SQL Server 2008 Service Pack 1

Referencias


Para obtener más información sobre la lista de compilaciones disponibles después de la publicación de SQL Server 2008, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
956909 Las compilaciones de SQL Server 2008 que se publicaron después de que se publicó SQL Server 2008
Para obtener más información sobre el modelo de mantenimiento incremental para SQL Server, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
935897 Un modelo de servicio incremental disponible en el equipo de SQL Server para ofrecer revisiones para problemas detectados
Para obtener más información sobre el esquema de nomenclatura de las actualizaciones de SQL Server, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
822499 Nuevo esquema de nomenclatura para los paquetes de actualización de software de Microsoft SQL Server
Para obtener más información acerca de la terminología de actualizaciones 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 utilizada para describir las actualizaciones de software de Microsoft