Estamos escribiendo pruebas unitarias para nuestra aplicación ASP.NET que se ejecuta en una base de datos SQL Server de prueba. Es decir, el método ClassInitialize crea una nueva base de datos con datos de prueba y ClassCleanup elimina la base de datos. Hacemos esto ejecutando scripts .bat desde el código.¿Cómo puedo saber cuándo ha terminado la población de índice de texto completo de SQL?
Las clases bajo prueba reciben una cadena de conexión que se conecta a la base de datos de prueba de la unidad en lugar de una base de datos de producción.
Nuestro problema es que la base de datos contiene un índice de texto completo, que debe completarse completamente con los datos de prueba para que nuestras pruebas se ejecuten como se espera.
Por lo que puedo decir, el índice de texto completo siempre se rellena en segundo plano. Me gustaría ser capaz de, ya sea:
- crear el índice de texto completo, completamente equipada, con una declaración síncrona (? Transact-SQL), o
- averiguar cuándo la población de texto completo está terminado, ¿hay una opción de devolución de llamada, o puedo preguntar repetidamente?
Mi solución actual es forzar un retraso al final del método de inicialización de clase - 5 segundos parece funcionar, porque no puedo encontrar nada en la documentación.
que he encontrado una página que indica que la propiedad 'PopulateStatus' es/dejará de estar disponible en una versión futura de SQL Servidor, pero no he podido encontrar una alternativa para verificar el estado de la población. ¿Tienes alguna idea? Consulte la primera nota: http://technet.microsoft.com/en-us/library/ms190370.aspx – Oskar
@Oskar De acuerdo con la lista detallada de características en desuso, http://technet.microsoft.com/en-us/library /cc646010.aspx, no hay reemplazo! Joe Stefanelli en otra pregunta publicó un comentario sugiriendo una posible alternativa: http://stackoverflow.com/questions/3680453/sql-server-2005-fts-unexpected-results pero todo esto se ve muy complicado. Tal vez habrá una nueva vista del sistema para FTE con esta información en SQL Server 2012 ... –
En realidad http://technet.microsoft.com/en-us/library/ms190370.aspx establece que debemos usar OBJECTPROPERTYEX sobre la mesa en su lugar. Sería mejor para el rendimiento, dar más detalles y mantenerse apoyado. http://technet.microsoft.com/en-us/library/ms188390.aspx Existe el equivalente a las propiedades mencionadas: TableFulltextPopulateStatus, TableFulltextItemCount, TableFulltextCatalogId, TableFullTextMergeStatus, y hay más (consulte el enlace) – Cohen