Tengo la siguiente tabla:
cliente (id INTEGER NOT NULL, nombre VARCHAR(200))
Con miles de registros, ¿Cómo puedo mejorar el tiempo de ejecución de las búsquedas por nombre?
Recibe ayuda de expertos
Es gratis y fácil
Respuestas, votos y comentarios
Recibe puntos, vota y da la solución
Tengo la siguiente tabla:
cliente (id INTEGER NOT NULL, nombre VARCHAR(200))
Con miles de registros, ¿Cómo puedo mejorar el tiempo de ejecución de las búsquedas por nombre?
pregunton mira lo mas optimo seria crear un indice en nombre pero lo que veo esa tabla es demasiada pequeña puede incrementar y el indice perdería su rendimiento por lo que es aconsejable que cada vez que crees un nuevo campo actualices el indices también depende mucho el desempeño como haces el select a esa tabla lo mas recomendable seria hacer un
select nombre where cliente nombre like 'JONATHAN%'
si te das cuenta el %
esta después del nombre ya que lo que hace el motor de búsqueda es ir por el indice y buscar ya que previamente esta ordenado por J
si haces un
'%Jonathan%
lo que le tocaria es buscar toda la tabla todo lo que comience por J
mi consejo es que solo crees indices en tablas con mas de 5000 registros sino no notaras la diferencia, tambien la mejor prueba es hacer un tracer viendo cuales son los campos de consulta que se ejecutan mas para definir correctamente los indices y notaras la aceleracion rapidamente, recuerda que dentro de sp tambien puedes crear indices sobre tablas temporales si solo haces consultas por medio de un sp personalizado
saludos..