sys.dm_db_missing_index_group_stats (Transact-SQL)

Se aplica a:SQL ServerAzure SQL DatabaseAzure SQL Managed Instance

Devuelve información de resumen sobre los grupos de índices que faltan, excluidos los índices espaciales.

En Azure SQL Database, las vistas de administración dinámica no pueden exponer información que afectaría a la contención de la base de datos ni exponería información sobre otras bases de datos a las que el usuario tiene acceso. Para evitar exponer esta información, se filtran todas las filas que contienen datos que no pertenecen al inquilino conectado.

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.

Se puede unir a index_group_handle en sys.dm_db_missing_index_groups.
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 Event Class.
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.

Observaciones

Cada ejecución de consulta actualiza la información devuelta por sys.dm_db_missing_index_group_stats , no por cada compilación o recompilación de consultas. Las estadísticas de uso no se conservan y solo se conservan hasta que se reinicia el motor de base de datos. 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. Use la columna sqlserver_start_time en sys.dm_os_sys_info para encontrar la hora del último inicio del motor de base de datos.

Nota

El conjunto de resultados de esta DMV está limitado a 600 filas. Cada fila contiene un índice que falta. Si tiene más de 600 índices que faltan, debe abordar los índices que faltan para poder ver los más recientes.

Un grupo de índices que falta puede tener varias consultas que necesitaban el mismo índice. Para obtener más información sobre las consultas individuales que necesitaban un índice específico en esta DMV, consulte sys.dm_db_missing_index_group_stats_query.

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.

Permisos para SQL Server 2022 y versiones posteriores

Requiere el permiso VIEW SERVER PERFORMANCE STATE en el servidor.

Ejemplos

En los ejemplos siguientes se muestra cómo usar la sys.dm_db_missing_index_group_stats vista de administración dinámica. Obtenga más información sobre cómo usar índices que faltan en optimizar índices no clúster con sugerencias de índice que faltan.

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 índice group_handle que falta 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 DDL CREATE INDEX para implementar índices que faltan, en primer lugar se enumeran las columnas de igualdad y, a continuación, 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). Obtenga información sobre cómo aplicar sugerencias de índice que faltan.

Pasos siguientes

Obtenga más información sobre la característica de índice que falta en los artículos siguientes: