Nuestro sitio web tiene una base de datos SQL Server 2008 R2 Express Edition con indexación de texto completo para nuestra búsqueda en el sitio web. Cada vez que se agrega o actualiza un nuevo registro en una de las tablas indexadas, el proceso de indexación nunca parece completarse.
He estado monitoreando el estado durante las últimas semanas utilizando básicamente la misma consulta que se encuentra en este sitio: http://www.sqlmonster.com/Uwe/Forum.aspx/sql-server-search/2155/Why-is-this -población-tomando-tan-largo
Esto es lo que veo cuando ejecuto la consulta (haga clic para ver el tamaño completo):
Los registros más nuevos en las tablas indexadas nunca se completan y no se pueden buscar. Aunque no hay muchos datos en las tablas, he esperado días para ver si la indexación se completa, pero nada cambia.
La única forma en que puedo lograr que la indexación se complete con éxito es reconstruir el catálogo o descartar y volver a crear todos los índices.
Cada vez que lo hago, el mismo problema termina volviendo tan pronto como se agrega el primer nuevo registro.
Aquí están las estadísticas del servidor por si acaso:
- Quad-Core AMD Opteron 2.34GHz
- 4 GB de RAM
- Windows Server 2008 R2 Enterprise SP1 x64
- SQL Server 2008 R2 Express Edition con servicios avanzados x64
Aquí hay un script que creé usando cursores para reconstruir y llenar índices completos para cualquier tabla que tenga uno para MSSQL2008. Esto funciona en un entorno de producción con bases de datos migradas desde un servidor MSSQL 2000. Desactivé el seguimiento de cambios y simplemente ejecuté este procedimiento almacenado a través del Agente SQL Server. Si estaba usando express, podría usar un script VBS para ejecutarlo a través del Programador de tareas.
Era importante en el script hacer una reconstrucción primero en cada catálogo antes de tratar de llenar los índices.
¿Alguien tiene un método que no requiera cursores?
fuente
Por lo general, se recomienda actualizar el catálogo de texto completo mediante disparadores. Ese es el enfoque que uso en mssql, pero en mi caso porque tengo una aplicación localizada con varios requisitos específicos que me llevan a una solución que utiliza disparadores, esa solución funciona al 100% a partir de 2 años atrás.
Revise su implementación en este ejemplo .
fuente
No estoy seguro de cuál es la causa raíz de su situación, pero esto puede suceder después de una copia de seguridad. No estoy seguro de si eso es lo que está sucediendo en su caso o cómo esa tabla es diferente de las demás. Ahora me tienes curiosidad. ¿Tiene activada la replicación SQL?
Para una solución temporal, realizaría un "rastreo" (población) en la tabla cuando esto ocurra.
http://msdn.microsoft.com/en-us/library/ms142575(v=sql.105).aspx
Usa este código:
fuente