2011-12-20 9 views
12

Tengo dos tablas que tienen millones de registros.
Quiero buscar texto completo en un par de columnas (básicamente nombres y apellidos). Sin embargo, ambas tablas esencialmente se borran y se reemplazan por un paquete DTS heredado durante el fin de semana.
Tenía el seguimiento de cambios establecido en automático y cuando dicho DTS se ejecutó, la tabla se bloqueó y todas las consultas fallaron.Asesoramiento para sql server indexación de texto completo seguimiento de cambios y población

Entonces, me gustaría hacer esto de la manera correcta. ¿Qué configuraciones o programación debo usar para el seguimiento y la población de cambios FTS? ¿Debo desactivar el seguimiento de cambios y luego programar una población completa después de que se ejecuten las importaciones de DTS?

Además, ¿cuál es la diferencia entre "seguimiento de cambios" y "población" y cómo están relacionados?
¿Cómo puede funcionar el índice si no hay un seguimiento de cambios?
¿La población completa agrega los índices incluso si el seguimiento de cambios está desactivado?

Respuesta

26

Hay varias maneras de acercarse a la población de índice cuando las tablas se borran durante el fin de semana. Una opción es soltar el índice de texto completo en la tabla antes de borrarlo y volver a crear el índice después del reemplazo del paquete DTS heredado. Otra opción es alterar el índice para establecer CAMBIO DE SEGUIMIENTO en MANUAL. Después de que la tabla haya sido borrada y repoblada, la población del índice ft puede activarse llamando a ALTER FULLTEXT INDEX ... START UPDATE POPULATION. Prefiero lo último (no olvides restablecer el seguimiento de cambios a AUTO si esta tabla ve muchas actualizaciones).

Diferencia entre CHANGE_TRACKING y POBLACIÓN -

CHANGE_TRACKING especifica cuándo y si los cambios realizados en la tabla se propagan al índice de texto completo. Se puede configurar en AUTO, MANUAL u OFF.

POBLACIÓN solo importa cuando CHANGE_TRACKING se establece en MANUAL u OFF.

Cuando se establece en MANUAL, el usuario debe activar el comando de actualización de población para que el texto completo pueda indexar los cambios rastreados, es decir, no se indexan automáticamente.

La configuración OFF especifica que SQL Server no realiza un seguimiento de los datos modificados, sino que indiza la tabla solo una vez durante la invocación del comando. Cuando NO HAY POBLACIÓN especificada con CHANGE_TRACKING establecido en OFF, los índices de texto completo no se llenan hasta que el usuario llame ALTER FULLTEXT INDEX con la cláusula START FULLTEXT POPULATION o START INCREMENTAL POULATION.

El artículo CREATE FULLTEXT INDEX de MSDN cubre todas estas opciones con más profundidad.

+0

Bien puesto. Debes ir y hacer que inicie sesión en +1. @fregas - asegúrate de destacar 'aks' por su buena respuesta. Además, esto es merecedor de una mejor respuesta si no hay otros. Lo encontré bastante útil. –

+0

+1 de mí. Mejor que el artículo de MSDN ... – Shubhojit

Cuestiones relacionadas