Lo primero para empezar el trabajo con SQL Server es preparar el ambiente. La instalación…
TIPS: Interpretar Missing index en SQL Server
Cuando realizamos un análisis de rendimiento de nuestras consultas, un usual primer camino lo damos a través de la revisión del plan de ejecución. Vemos todo el detalle de nuestra consulta y notamos que en la parte superior del gráfico nos muestra una sugerencia casi indiscutible ¿verdad?. Esas letras de color verde que nos promete un porcentaje de impacto en mejora. ¡Exacto!, es el missing index. Pero, ¿cuál es la manera adecuada de interpretar el Missing Index en SQL Server?
¿Qué significa Missing Index?
Nada más que una recomendación del propio motor para considerar la creación de un índice. Y lo remarco, es una recomendación. Por ende, no es una obligación ni tampoco puedes considerarla como la solución a tus problemas.
¿De dónde se obtiene la información para hacer esta recomendación?
Tenemos diferentes vistas de sistema (DMV’s) que almacenan información relevante para plantear estas recomendaciones. Por ejemplo las tablas:
- sys.dm_db_missing_index_columns
- sys.dm_db_missing_index_details
- sys.dm_db_missing_index_groups
- sys.dm_db_missing_index_group_stats
Los datos que tienen estas tablas no son persistentes. Esto quiere decir que serán eliminados con un reinicio del servidor.
Entonces ¿Cómo interpretar el Missing Index?
Aquello que es sugerido por el motor, se basa en aquello que tú le pides.
¿Qué quiere decir? Si tú ejecutas una determinada consulta, el motor te recomendará la creación de un índice adecuado para ella exclusivamente.
Esto significa que no existe una recomendación general, una que sea válida para todas las consultas. El denominado Missing Index Recommendation es exclusivo para una consulta y no para un conjunto de consultas.
Considera al Missing Index como una sugerencia, nunca como algo definitivo.
Finalmente ¿Y qué tiene de malo si ejecuto todas las recomendaciones de Missing Index?
- Nada. Mientras tengas una buena política de Testing y control de cambios.
- Los Missing Index no son 100% precisos. Pueden sugerirte menos o más columnas, sobretodo en las columnas del INCLUDE.
- No siempre se muestran todas las recomendaciones en el plan de ejecución. Puedes ver que en su XML pueden existir más recomendaciones.
- Crear todos los índices recomendados usualmente lleva a duplicar objetos innecesariamente. Revisa el uso de tus índices con nuestra herramienta.
¿Cuántos Missing Index pueden existir en una base de datos? Genera un reporte y mira dónde te pueden ayudar.