Aceleración de consultas
Paraacelerar las consultas en SQL Server y en cualquier motor de base de datos debemos usar apropiadamente los índices
Las columnas que se aconseja indexar son:
- Las que son clave primaria o ajena
-Aquellas que se usan frecuentemente en búsquedas de rangos de valores con BETWEEN
- Aquellas que se usan frecuentemente en ordenaciones con ORDER BY
- Aquellas que se usan frecuentemente en crucesde tabla o JOIN
- Aquellas que se usan frecuentemente en agrupaciones con GROUP BY
Tampoco se trata señores de ponerse a indexar todos los campos! No es oro todo lo que reluce pues penalizaráel rendimiento de la base de datos
en las inserciones , actualizaciones y borrados por la cantidad de índices a mantener. De lo que se trata es de seleccionar las consultas que más se usan en nuestraaplicación todos los días y coger las más importantes y fijarse en la parte WHERE.
Es importante indicar que no merece la pena indexar campos con pocos valores como true, false, o 1,2,3 porejemplo porque tienen poca selectividad y
una alta densidad de valores habitualmente. También decir que solo puede haber un índice agrupado por tabla y hasta 249 índices no agrupados.
Hay otrasconsideraciones que se deben tener en cuenta como consultar el Plan de Ejecución de la consulta CTRL+L en el QueryAnalizer, os comento algunas más aunque alguno se ha adelantado ;-)
- Usar procedimientosalmacenados
- Usar la opción FILLFACTOR al crear el indice para envitar divisiones de página en las modificaciones si nuestra base de datos sufre muchas modificaciones.
- Usar DBCC SHOWCONTIGpara ver la fragmentación de un índice y ver si merece la pena desfragmentarlo con DBCC INDEXDEFRAG
- Usar la opción WITH DROP EXISTING al crear el indice para no tener que eliminarlo y volver a...
Regístrate para leer el documento completo.