sys.dm_db_missing_index_group_stats (Transact-SQL)
Devuelve información de resumen sobre los grupos de índices que faltan, excluidos los índices espaciales.
Nombre de la columna |
Tipo de datos |
Descripción |
---|---|---|
group_handle |
int |
Identifica un grupo de índices que faltan. Este identificador es único en todo el servidor. Las otras columnas proporcionan información sobre todas las consultas para las que se considera que falta el índice del grupo. Un grupo de índices solo contiene un índice. |
unique_compiles |
bigint |
Número de compilaciones y recompilaciones que se beneficiarían de este grupo de índices que faltan. Las compilaciones y recompilaciones de muchas consultas distintas puede contribuir a este valor de columna. |
user_seeks |
bigint |
Número de búsquedas iniciadas por consultas de usuario para las que se podría haber utilizado el índice recomendado del grupo. |
user_scans |
bigint |
Número de recorridos iniciados por consultas de usuario para los que se podría haber utilizado el índice recomendado del grupo. |
last_user_seek |
datetime |
Fecha y hora de la última búsqueda iniciada por consultas de usuario para la que se podría haber utilizado el índice recomendado del grupo. |
last_user_scan |
datetime |
Fecha y hora del último recorrido iniciado por consultas de usuario para el que se podría haber utilizado el índice recomendado del grupo. |
avg_total_user_cost |
float |
Costo medio de las consultas de usuario que podría reducirse mediante el índice del grupo. |
avg_user_impact |
float |
Beneficio porcentual medio que podrían obtener las consultas de usuario si se implementara este grupo de índices que faltan. El valor significa que el costo de las consultas se reduciría este porcentaje como promedio si se implementara este grupo de índices que faltan. |
system_seeks |
bigint |
Número de búsquedas iniciadas por consultas del sistema, como consultas de estadísticas automáticas, para las que se podría haber utilizado el índice recomendado del grupo. Para obtener más información, vea Auto Stats (clase de eventos). |
system_scans |
bigint |
Número de recorridos iniciados por consultas del sistema para los que se podría haber utilizado el índice recomendado del grupo. |
last_system_seek |
datetime |
Fecha y hora de la última búsqueda en el sistema iniciada por consultas del sistema para la que se podría haber utilizado el índice recomendado del grupo. |
last_system_scan |
datetime |
Fecha y hora del último recorrido en el sistema iniciado por consultas del sistema para el que se podría haber utilizado el índice recomendado del grupo. |
avg_total_system_cost |
float |
Costo medio de las consultas del sistema que podría reducirse mediante el índice del grupo. |
avg_system_impact |
float |
Beneficio porcentual medio que podrían obtener las consultas del sistema si se implementara este grupo de índices que faltan. El valor significa que el costo de las consultas se reduciría este porcentaje como promedio si se implementara este grupo de índices que faltan. |
Comentarios
La información devuelta por sys.dm_db_missing_index_group_stats se actualiza en cada ejecución de la consulta, no en cada compilación o recompilación de la consulta. Las estadísticas de uso no se guardan; solo se conservan hasta que se reinicia SQL Server. Los administradores de bases de datos deben realizar periódicamente una copia de seguridad de la información de los índices que faltan si desean conservar las estadísticas de uso después del reciclaje del servidor.
Permisos
Para consultar esta vista de administración dinámica, se debe conceder a los usuarios el permiso VIEW SERVER STATE o cualquier permiso que implique el permiso VIEW SERVER STATE.
Ejemplos
En los siguientes ejemplos se ilustra la forma de usar la vista de administración dinámica sys.dm_db_missing_index_group_stats.
A.Buscar los 10 índices que faltan para los que se prevé mayor aumento de rendimiento en las consultas de usuario
La siguiente consulta determina cuáles de los 10 índices que faltan producirían el mayor aumento acumulado previsto, en orden descendente, para consultas de usuario.
SELECT TOP 10 *
FROM sys.dm_db_missing_index_group_stats
ORDER BY avg_total_user_cost * avg_user_impact * (user_seeks + user_scans)DESC;
B.Buscar los índices que faltan individuales y sus detalles de columna para un grupo específico de índices que faltan
La siguiente consulta determina cuáles de los índices que faltan forman un grupo específico de índices que faltan y muestra sus detalles de columna. Para este ejemplo, el identificador del grupo de índices que faltan es 24.
SELECT migs.group_handle, mid.*
FROM sys.dm_db_missing_index_group_stats AS migs
INNER JOIN sys.dm_db_missing_index_groups AS mig
ON (migs.group_handle = mig.index_group_handle)
INNER JOIN sys.dm_db_missing_index_details AS mid
ON (mig.index_handle = mid.index_handle)
WHERE migs.group_handle = 24;
Esta consulta proporciona el nombre de la base de datos, el esquema y la tabla en que falta un índice. También proporciona los nombres de las columnas que deben usarse para la clave de índice. Al escribir la instrucción CREATE INDEX DDL para implementar índices que faltan, se muestran primero las columnas de igualdad y después las columnas de desigualdad en la cláusula ON <table_name> de la instrucción CREATE INDEX. Las columnas incluidas deben mostrarse en la cláusula INCLUDE de la instrucción CREATE INDEX. Para determinar un orden efectivo para las columnas de igualdad, ordénelas en función de su selectividad, mostrando primero las columnas más selectivas (en la parte izquierda de la lista de columnas).
Vea también
Referencia
sys.dm_db_missing_index_columns (Transact-SQL)
sys.dm_db_missing_index_details (Transact-SQL)