Ver Mensaje Individual
  #7 (permalink)  
Antiguo 05/05/2009, 09:27
Avatar de iislas
iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 16 años, 11 meses
Puntos: 180
Respuesta: Order By Alenta mi resultado?

zyon

Palabras mas, palabras menos, esto explique de un INDICE.

Cuando tu vas a un edificio de 14 pisos, con 118 despachos y buscas al LIC GODINEZ y no hay recepcionista en la puerta, no vas a andar tocando de puerta en puerta en los 14 pisos y 118 puertas preguntando por el Lic. Godinez.

Para eso, hay un DIRECTORIO a la entrada, donde indica que despachos o que personas estan registrados en los 118 despachos.

Pues bien, cuando SQL Server (o cualquier otro motor) hace busquedas en las tablas, lo primero que consulta son los INDICES creados para dicha tabla, de no haberlos, hara exactamente lo que tu harias, si no hay un directorio (TABLE SCAN), buscara de registro en registro, la informacion que se busca y si son MILLONES, pues ya sabras cuanto se tardara, aunque sea muy eficiente.

Para el ejemplo que nos compete, si se sabe que unas de mis columnas candidatas es la columna "paterno", entonces debere convertirla en INDICE.

¿Como se que es una candidata?, Comunmente, son las utilizadas en el WHERE o bien, como en este caso en el ORDER BY

select * from usuarios order by paterno
te va poner

3 | Raul | Dias | Dias
1 | Juan | Leon | Leon
2 | Beto | Perez | Perez

Ahora, no confundir, nada tienen que ver los INDICES para mejorar las consultas, al concepto que tu dices de FK (foreing key).

Despues de esto, no estaria mal, que le dedicaras un poco a la lectura de tu AYUDA EN LINEA, donde encontraras mucho mejor explicado este concepto.

Saludos