06/12/2012, 12:30
|
| | Fecha de Ingreso: julio-2012 Ubicación: Israel
Mensajes: 360
Antigüedad: 12 años, 5 meses Puntos: 40 | |
Respuesta: Elegir mejor consulta de estas dos Vamos a suponer que tienes una tabla con cuatro columnas: A,B,C,D;
sin ningun índice.
Si ejecutas Select * From MiTabla o Select * From MiTabla Where ... el sistema tendra que ejecutar Table Scan, es decir - pasar todas las filas de la tabla para encontrar lo que buscas (como Libras ya mencionó).
Ahora vamos a suponer que creas un Clustered Index con la columna A,
y un Index (Non Clustered) con las columnas B, C. Select * From MiTabla el sistema va a hacer un Clustered Index Scan en lugar de Table Scan porque ahora la tabla esta almacenada ordenada a base a columna A (=Clustered Index). Select * From MiTabla Where A=... el sistema va a ejecutar un Clustered Index Seek que significa que va a aprovechar el Clustered Index para encontrar las filas deseadas directamente sin tener que pasar todas las filas. Select B,C From MiTabla Where B=... And C=... el sistema va a ejecutar un Index Seek para encontrar las filas con el índice. Select * From MiTabla Where D=... el sistema va a ejecutar un Clustered Index Scan. (¿sabes porque?) Select * From MiTabla Where B=... And C=... el sistema tendrá que elegir entre Clustered Index Scan y Index Seek + Clustered Index Seek porque el Index no incluye todas las columnas, sino- solamente B & C.
__________________ El Castellano no es mi lengua materna: discúlpenme por los errores gramaticales. Mi blog |