entre Desarrolladores

Recibe ayuda de expertos

Registrate y pregunta

Es gratis y fácil

Recibe respuestas

Respuestas, votos y comentarios

Vota y selecciona respuestas

Recibe puntos, vota y da la solución

Pregunta

0voto

Creación de índices para mejorar despeño de búsquedas en SQL

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?

1voto

alv-c comentado

Si solo buscas un resultado en particular LIMIT ayuda mucho

3 Respuestas

2votos

Jonathino25 Puntos1740

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

1voto

hfreirel Puntos250

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..

0voto

Sarebok comentado

Como dice hfreirel, lo mejor es que obtengas la consulta que te está dando problemas mediante una traza y hagas un Plan de Ejecución en SQL. Con esto podrás ver que % de rendimiento esta consumiendo cada INNER o LEFT y ajustarlo a tu índice.

Te dejo un enlace donde explican muy claro la creación de índices y como interpretar las consultas en el Plan de Ejecución.

http://grimpidev.wordpress.com/2008/10/28/entender-el-plan-de-ejecucion-en-sql-server-20052008/

0voto

Peter Puntos150460

Como te dicen, creando un índice:

CREATE INDEX idxnombre ON cliente(nombre); 

Por favor, accede o regístrate para responder a esta pregunta.

Otras Preguntas y Respuestas


...

Bienvenido a entre Desarrolladores, donde puedes realizar preguntas y recibir respuestas de otros miembros de la comunidad.

Conecta