Acelerar Mis Consultas En SQL Server
Muchos clientes se quejan de consultas lentas, para ello os voy a dar unas guías básicas como una e-pildora que ampliaré en vista de lautilidad y éxito ahora que tengo un ratito más:
Para acelerar las consultas en SQL Server y en cualquier motor de base de datos debemos usar apropiadamente los índices
Las columnas que se aconsejaindexar 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 cruces de 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 esoro 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 lasconsultas que más se usan en nuestra aplicació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 valorescomo true, false, o 1,2,3 por ejemplo 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 índicesno agrupados.
Hay otras consideraciones 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 haadelantado ;-)
- Usar procedimientos almacenados
- 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 SHOWCONTIG para 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...
Regístrate para leer el documento completo.