Ver Mensaje Individual
  #2 (permalink)  
Antiguo 17/08/2008, 19:10
Avatar de gnzsoloyo
gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años, 4 meses
Puntos: 2658
Respuesta: ¿Se justifica indexar campos ORDER BY?

1. Un índice cluster es un índice primario definido al crear la PRIMARY KEY, y es el que mantiene el ordenamiento físico de los registros en el disco. Como tal es un índice único por tabla. Si esa tabla tiene un campo autoincremental, ese campo es la PK. No podrás definir otro...
2. El hecho que haya un conjunto de campos usuales en una cláusula ORDER BY no significa necesariamente que requieras hacer un índice determinado, ya que el índice se debe definir sobre los campos usados en WHERE. El sentido de los índices es buscar, no ordenar. El ordenamiento de un índice tiene por objeto el encontrar los registros buscados.
3. El ORDER BY es una operación que se realiza al terminar el proceso de la consulta, por lo cual aunque hubiese un índice definido en esos campos, no tendría efecto en el ordenamiento del resultado de la consulta misma. Tampoco aceleraría la consulta en sí, ya que, como dije, esta se ejecuta antes de cualquier ordenamiento. Por esa razón no tiene sentido usar índices en campos que no sean los del WHERE.

¿Se entiende?
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)