Hicimos una prueba en SQL Server 2014 cuando teníamos 10 bases de datos, 100 esquemas diferentes en cada base de datos, 10 de tablas pequeñas (~ 50 filas) en cada esquema (por lo tanto, 10K tablas en total) y creamos índices de texto completo en todos estos tablas en todas estas bases de datos simultáneamente.
En varios minutos descubrimos que SQL Server se detuvo para aceptar cualquier conexión (excepto la ADMIN:.
conexión). Si reiniciamos el servidor, podemos conectarnos, pero en algún momento se bloquea nuevamente. Después de una investigación, descubrimos que es causada por consumir todos los hilos de trabajo dm_os_tasks
y dm_os_waiting_tasks
nos mostró que hay muchas FT_MASTER_MERGE
esperas en el SUSPENDED
estado. Buscamos en Google que "el texto completo está esperando la operación de fusión maestra", pero no encontramos más información real al respecto.
Probamos diferentes configuraciones de catálogo de texto completo: un catálogo por DB, un catálogo por esquema, un catálogo por índice. De todos modos, el servidor se cuelga con todas estas tareas suspendidas.
¿Cuál es la causa raíz de las esperas, cómo se puede solucionar / mitigar?
¿Y cuál es la forma recomendada de habilitar el texto completo en una cantidad tan grande de tablas?