FTS puede ayudar en este escenario, la pregunta es si vale la pena o no.
Para empezar, veamos por qué LIKE
puede no ser la búsqueda más efectiva. Cuando usa LIKE
, especialmente cuando busca con %
al comienzo de su comparación, SQL Server necesita realizar un escaneo de tabla de cada fila y un byte por byte de la columna que está revisando.
FTS tiene algunos algoritmos mejores para hacer coincidir los datos, al igual que algunas estadísticas mejores sobre variaciones de nombres. Por lo tanto, FTS puede proporcionar un mejor rendimiento para emparejar a Smith, Smythe, Smithers, etc. cuando busca a Smith.
Sin embargo, es un poco más complejo usar FTS, ya que tendrá que dominar CONTAINS
frente a FREETEXT
y el formato arcano de la búsqueda. Sin embargo, si desea hacer una búsqueda donde coincidan FName o LName, puede hacerlo con una declaración en lugar de una OR.
Para determinar si FTS va a ser efectivo, determine cuántos datos tiene. Utilizo FTS en una base de datos de varios cientos de millones de filas y eso es un beneficio real sobre la búsqueda con LIKE
, pero no lo uso en todas las tablas.
Si el tamaño de su tabla es más razonable, menos de unos pocos millones, puede obtener una velocidad similar creando un índice para cada columna en la que va a buscar y SQL Server debe realizar una exploración de índice en lugar de escaneo de tabla.
Para aclarar, FTS no ayudaría sin cambiar la consulta existente. – Brannon
FTS no ayudaría sin cambiar la consulta existente. Pero, si su conjunto de datos es lo suficientemente pequeño, puede usar LIKE sin problemas durante un tiempo. – Josef