Tengo una tabla de base de datos con varias columnas; la mayoría de ellos son columnas de tipo VARCHAR(x)
, y algunas de estas columnas tienen un índice para que pueda buscar rápidamente datos dentro de ella.SQL Server; índice en la columna TEXTO
Sin embargo, una de las columnas es una columna TEXT
, porque contiene una gran cantidad de datos (23 kb de texto ascii simple, etc.). Quiero poder buscar en esa columna (... WHERE col1 LIKE '%search string%'...
), pero actualmente lleva una eternidad llevar a cabo la consulta. Sé que la consulta es lenta debido a esta búsqueda de columna porque cuando elimino ese criterio de la cláusula WHERE
, la consulta se completa (lo que yo consideraría), de forma instantánea.
No puedo agregar un índice en esta columna porque esa opción está atenuada para esa columna en el generador de índices/asistente en SQL Server Management Studio.
¿Cuáles son mis opciones aquí, para acelerar la búsqueda de consultas en esa columna?
Gracias por su tiempo ...
Actualizar
Ok, por lo que se veía en la búsqueda de texto completo e hicieron todas esas cosas, y ahora me gustaría ejecutar consultas. Sin embargo, al usar "contiene", solo acepta una palabra; ¿y si necesito una frase exacta? ... WHERE CONTAINS (col1, 'search phrase') ...
arroja un error.
Lo siento, soy nuevo en SQL Server
Actualización 2 lo siento, simplemente descubierto; utilice varias cláusulas "contiene" en lugar de una cláusula con varias palabras. En realidad, esto todavía no obtiene lo que quiero (la frase exacta) solo se asegura de que todas las palabras en la frase estén presentes.
+1: ¡El texto completo es el camino a seguir, seguro! –
El enlace ya no funciona. Por favor, corrige si es posible! – Andreas
El enlace está ahora fijado –