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)

sys.dm_db_missing_index_groups (Transact-SQL)

CREATE INDEX (Transact-SQL)