Leer una sugerencia Missing Index en el plan
Una sugerencia Missing Index indica que el optimizador encontró una estructura hipotética con la que estimó un costo menor para la consulta. La señal merece revisión, pero no demuestra que el índice deba crearse ni que el porcentaje mostrado se convierta en la misma mejora de duración.
Producir la sugerencia en SSMS
La consulta filtra por estado y total, agrupa por cliente y ordena los importes más altos:
SELECT TOP (10)
p.IdCliente,
COUNT_BIG(*) AS Pedidos,
SUM(p.Total) AS Importe
FROM dbo.PedidoLaboratorio AS p
WHERE p.Estado = 'Enviado'
AND p.Total BETWEEN 1200.00 AND 1210.00
GROUP BY p.IdCliente
ORDER BY Importe DESC;
Activa Include Actual Execution Plan con Ctrl+M, ejecuta la consulta y abre Execution plan. SSMS coloca la sugerencia en texto verde encima del árbol.
- 1Sugerencia estimada
La línea verde identifica la tabla, las columnas propuestas y un impacto estimado de
80.7244. - 2Acceso utilizado
El plan ejecutado conserva un
Index Scansobre una estructura existente; la sugerencia no reemplazó el plan durante esta ejecución.
Un índice hipotético es una estructura que el optimizador considera para calcular otra alternativa sin crearla físicamente. Por eso la línea puede aparecer junto al plan que realmente se ejecutó.
Interpretar el porcentaje de impacto
El valor Impact compara el costo estimado del plan actual con el costo que el optimizador calculó al considerar la estructura propuesta. Es una comparación dentro del modelo de costos de esa compilación.
El porcentaje no representa:
- tiempo ahorrado medido con un cronómetro;
- reducción garantizada de CPU o lecturas;
- beneficio para todas las consultas que usan la tabla;
- costo de mantener el índice durante
INSERT,UPDATEyDELETE; - espacio, redundancia o superposición con índices existentes.
Una estimación alta ayuda a priorizar la investigación. La decisión necesita medir el trabajo realizado y revisar el conjunto completo de índices.
Abrir Missing Index Details
Haz clic derecho en una zona vacía del plan y selecciona Missing Index Details….
- 1Detalle disponible
La acción abre otra pestaña con una instrucción propuesta; no crea el índice.
La pestaña nueva conserva la propuesta dentro de un comentario:
- 1Bloque comentado
Los delimitadores
/*y*/impiden que la instrucción se ejecute al abrirla. - 2Columnas propuestas
EstadoyTotalforman la clave sugerida;IdClienteaparece enINCLUDE.
No ejecutes la instrucción como un paso automático. La siguiente entrada explicará cómo se forma ese CREATE INDEX; después será necesario compararlo con los índices actuales, darle un nombre válido y medir su efecto.
Leer la solicitud en Showplan XML
Haz clic derecho en una zona vacía del gráfico y selecciona Show Execution Plan XML. Busca MissingIndexes dentro del documento.
- 1
MissingIndexesContiene las solicitudes de índices asociadas con la instrucción.
- 2
MissingIndexGroupyMissingIndexEl grupo conserva el impacto estimado; el elemento interno identifica base, esquema y tabla.
- 3
EQUALITYEstadoparticipa en una comparación de igualdad. - 4
INEQUALITYTotalparticipa en el rango solicitado porBETWEEN. - 5
INCLUDEIdClientese solicita como columna incluida para cubrir datos necesarios sin formar parte de la clave propuesta.
EQUALITY, INEQUALITY e INCLUDE describen el papel de las columnas en la solicitud. No determinan por sí solos el orden final entre varias columnas de igualdad o de desigualdad, ni comprueban que la estructura sea adecuada para otras consultas.
La línea verde puede mostrar una sola solicitud
Una instrucción puede producir más de una solicitud. Esta consulta reúne dos conteos con filtros distintos:
SELECT
(
SELECT COUNT_BIG(*)
FROM dbo.PedidoLaboratorio AS p
WHERE p.Estado = 'Enviado'
AND p.Total BETWEEN 1200.00 AND 1210.00
) AS PedidosPorEstado,
(
SELECT COUNT_BIG(*)
FROM dbo.PedidoLaboratorio AS p
WHERE p.IdCliente BETWEEN 1000 AND 1100
AND p.Total >= 1500.00
) AS PedidosPorCliente;
Ejecuta la consulta con el plan real activado. El gráfico conserva las dos ramas, pero el texto verde presenta una sola sugerencia.
- 1Línea visible
SSMS muestra la propuesta para
IdClienteyTotal. - 2Primera rama
Resuelve el conteo filtrado por
EstadoyTotal. - 3Segunda rama
Resuelve el conteo filtrado por
IdClienteyTotal.
Al abrir el XML aparecen las dos solicitudes:
- 1Solicitud por cliente
Propone
IdClienteyTotalcomo columnas de desigualdad, con impacto estimado de43.5229. - 2Solicitud por estado
Conserva
Estadocomo igualdad yTotalcomo desigualdad, con impacto estimado de43.2071.
La línea verde es un acceso rápido, no un inventario completo. Cuando el plan tiene varias ramas o instrucciones, el XML permite verificar cuántos grupos quedaron registrados y a qué columnas corresponde cada uno.
Separar señal y decisión
La revisión puede registrarse sin convertir la sugerencia en una orden:
- Observación: el plan muestra un
Index Scany una sugerencia con impacto estimado de80.7244. - Hipótesis: una estructura con
EstadoyTotalcomo clave, eIdClienteincluida, podría reducir el trabajo de lectura para esta consulta. - Comprobación pendiente: revisar índices existentes, selectividad, escrituras, espacio, lecturas y tiempos antes y después.
- Límite: la sugerencia procede de una compilación y no evalúa por sí sola el costo total para la carga de trabajo.
Siguiente comprobación razonable
La siguiente entrada desarma la instrucción generada por Missing Index Details: nombre, columnas clave, columnas incluidas y decisiones que SQL Server deja abiertas antes de crear un índice.
Relacionado con
- Cómo se organiza el XML Showplan: ubica la solicitud dentro del documento.
- Lecturas con SET STATISTICS IO: mide el trabajo de lectura antes de evaluar un cambio.
- Revisar índices faltantes: consulta las observaciones acumuladas por las DMV.
- Revisar uso de índices: contrasta lecturas y mantenimiento de las estructuras existentes.
- Convertir un escenario en una hipótesis: separa la señal, la prueba y la conclusión.





