Ver Mensaje Individual
  #19 (permalink)  
Antiguo 06/12/2012, 14:30
Jamati
 
Fecha de Ingreso: febrero-2008
Mensajes: 578
Antigüedad: 16 años, 2 meses
Puntos: 3
Respuesta: Elegir mejor consulta de estas dos

Se nota tus conocimientos GeriReshef...
Antes que nada, muchísimas gracias.

A ver, siguiendo con tu ejemplo:

Select A,D From MiTabla Where B=... And C=... ejecuta un Index Seek ?? porque las condiciones del WHERE están en un índice.

Me interesa este tema ya que tengo varias tablas, y muchas de ellas con 20 columnas aproximadamente. Y al hacer consultas, elijo por ejemplo 10 columnas solamente, es decir, no todas las columnas que elijo están dentro de un índice, por lo tanto, puedo dedudir que los índices sirven solamente para cuando en el SELECT están esos dos campos, es así ??

Muy buena la web que envió Libras, lástma que está en inglés, pero es muy interesante, aunque aún así se me complica entender bien el tema de los índices o como trabaja el Motor SQL respecto a los índices.

Yo tenía entendido lo siguiente: todo lo que hay después del WHERE en una consulta, si son consultas que se hacen muy seguido en el sistema, conviene que estén en claves o índices, en el mismo orden, sin importar las columnas que se quiera recuperar.
Por ejemplo, una consulta:
SELECT * FROM mitabla WHERE A = ...... B = .....
Y si esa consulta puede tener muchos resultados, conviene hacer un índice de la siguiente forma: INDICE(A,B) y no INDICE(B,A)... y eso me iba a acelerar muchísimo la velocidad de respuesta del motor, ya que como tengo un índice en el mismo orden que el WHERE, el motor encuentra todo esos resultados mucho más rápido.

Parece que estoy un poco equivocado, es complicado de entender.

Igualmente, muchísimas gracias !!

Última edición por Jamati; 06/12/2012 a las 17:13