sqlserver not full ejemplos because sql database performance full-text-search sql-like

ejemplos - sql server contains because it is not full text indexed



El rendimiento de% ''% Query%'' similar a la consulta de búsqueda de texto completo CONTAINS (3)

Tengo una situación en la que me gustaría buscar una sola palabra .

Para ese escenario, ¿qué consulta sería buena desde el punto de vista del rendimiento?

Select Col1, Col2 from Table Where Col1 Like ''%Search%''

o

Select Col1, Col2 from Table Where Col1 CONTAINS(Col1,''Search'')

?


Al igual que la búsqueda en Table it self, matará el rendimiento. Mejor aplicar como búsqueda en CTE.


La búsqueda de texto completo (usando CONTAINS) será más rápida / más eficiente que usar LIKE con wildcarding. La búsqueda de texto completo (FTS) incluye la capacidad de definir índices de texto completo, que FTS puede usar. No sé por qué no definirías un índice FTS si pretendías usar la funcionalidad ...

LIKE con wildcarding en el lado izquierdo (IE: LIKE ''%Search'' ) no puede usar un índice (suponiendo que exista para la columna), lo que garantiza un escaneo de tabla. No he probado y comparado, pero Regex tiene la misma trampa. Para aclarar, LIKE ''%Search'' y LIKE ''%Search%'' no pueden usar un índice; LIKE ''Search%'' puede usar un índice.


Para una base de datos típica, la búsqueda CONTAINS puede ser mucho más rápida si se incluye el índice de búsqueda de texto completo apropiado en el campo que se busca. La evaluación del operador LIKE generalmente no usa un índice y, por lo tanto, debe leer todos los datos.