Partilhar via


sys.dm_db_missing_index_group_stats (Transact-SQL)

Aplica-se a:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceBase de dados SQL no Microsoft Fabric

Retorna informação resumida sobre grupos de índices em falta, excluindo índices espaciais.

No Banco de Dados SQL do Azure, as exibições de gerenciamento dinâmico não podem expor informações que possam afetar a contenção do banco de dados ou expor informações sobre outros bancos de dados aos quais o usuário tem acesso. Para evitar a exposição dessas informações, todas as linhas que contêm dados que não pertencem ao locatário conectado são filtradas.

Nome da coluna Tipo de dados Description
group_handle int Identifica um grupo de índices em falta. Este identificador é único em todo o servidor.

As outras colunas fornecem informações sobre todas as consultas para as quais o índice do grupo é considerado ausente.

Um grupo de índices contém apenas um índice.

Pode ser ligado index_group_handle em sys.dm_db_missing_index_groups.
unique_compiles bigint Número de compilações e recompilações que beneficiariam deste grupo de índice em falta. Compilações e recompilações de muitas consultas diferentes podem contribuir para o valor desta coluna.
user_seeks bigint Número de pesquisas causadas por consultas de utilizadores para as quais o índice recomendado no grupo poderia ter sido usado.
user_scans bigint Número de varreduras causadas por consultas de utilizador para as quais o índice recomendado no grupo poderia ter sido usado.
last_user_seek datetime Data e hora da última busca causadas por consultas dos utilizadores para as quais o índice recomendado no grupo poderia ter sido usado.
last_user_scan datetime Data e hora da última análise causadas por consultas dos utilizadores para as quais o índice recomendado no grupo poderia ter sido usado.
avg_total_user_cost float Custo médio das consultas dos utilizadores que poderia ser reduzido pelo índice do grupo.
avg_user_impact float Benefício percentual médio que as consultas dos utilizadores poderiam experienciar se este grupo de índice em falta fosse implementado. O valor significa que o custo da consulta diminuiria, em média, esta percentagem se este grupo de índice em falta fosse implementado.
system_seeks bigint Número de pesquisas causadas por consultas do sistema, como consultas de autoestatísticas, para as quais o índice recomendado no grupo poderia ter sido usado. Para mais informações, consulte Auto Stats Event Class.
system_scans bigint Número de digitalizações causadas por consultas do sistema para as quais o índice recomendado no grupo poderia ter sido utilizado.
last_system_seek datetime Data e hora da última pesquisa do sistema são causadas por consultas do sistema para as quais o índice recomendado no grupo poderia ter sido usado.
last_system_scan datetime Data e hora da última varredura do sistema causadas por consultas do sistema para as quais o índice recomendado no grupo poderia ter sido usado.
avg_total_system_cost float O custo médio das consultas do sistema que poderia ser reduzido pelo índice no grupo.
avg_system_impact float Benefício percentual médio que as consultas do sistema poderiam experienciar se este grupo de índice em falta fosse implementado. O valor significa que o custo da consulta diminuiria, em média, esta percentagem se este grupo de índice em falta fosse implementado.

Observações

A informação devolvida sys.dm_db_missing_index_group_stats por é atualizada em cada execução de consulta, não em cada compilação ou recompilação de consultas. As estatísticas de utilização não são mantidas e são mantidas apenas até que o motor da base de dados seja reiniciado. Os administradores de bases de dados devem periodicamente fazer cópias de segurança da informação de índice em falta se quiserem manter as estatísticas de utilização após a reciclagem do servidor. Use a sqlserver_start_time coluna no sys.dm_os_sys_info para localizar a última hora de inicialização do mecanismo de banco de dados.

Observação

O conjunto de resultados para este IMT está limitado a 600 filas. Cada linha contém um índice em falta. Se tiver mais de 600 índices em falta, deve abordar os índices existentes em falta para depois poder ver os mais recentes.

Um grupo de índice em falta pode ter várias consultas que necessitavam do mesmo índice. Para mais informações sobre consultas individuais que precisavam de um índice específico neste DMV, consulte sys.dm_db_missing_index_group_stats_query.

Permissions

Para consultar esta vista de gestão dinâmica, os utilizadores devem receber a permissão VIEW SERVER STATE ou qualquer permissão que implique a permissão VIEW SERVER STATE.

Permissões para SQL Server 2022 e posterior

Requer a permissão VIEW SERVER PERFORMANCE STATE no servidor.

Examples

Os exemplos seguintes ilustram como usar a vista de sys.dm_db_missing_index_group_stats gestão dinâmica. Saiba mais sobre orientações para o uso de índices em falta em sintonia com sugestões de índices não agrupados com índice em falta.

A. Encontre os 10 índices em falta com a maior melhoria antecipada para as consultas dos utilizadores

A consulta seguinte determina quais os 10 índices em falta que produziriam a maior melhoria cumulativa antecipada, por ordem decrescente, para as consultas dos utilizadores.

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. Encontre os índices individuais em falta e os seus detalhes das colunas para um determinado grupo de índices em falta

A consulta seguinte determina quais os índices em falta que compõem um determinado grupo de índices em falta e apresenta os detalhes das suas colunas. Para efeitos deste exemplo, o índice group_handle em falta é 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 fornece o nome da base de dados, esquema e tabela onde falta um índice. Também fornece os nomes das colunas que devem ser usadas para a chave de índice. Ao escrever a instrução CREATE INDEX DDL para implementar índices em falta, liste primeiro as colunas de igualdade e depois as colunas de desigualdade na cláusula ON <table_name> da instrução CREATE INDEX. As colunas incluídas devem estar listadas na cláusula INCLUDE da instrução CREATE INDEX. Para determinar uma ordem efetiva para as colunas de igualdade, ordene-as com base na sua seletividade, listando primeiro as colunas mais seletivas (mais à esquerda na lista de colunas). Aprenda a aplicar sugestões de índice em falta.

Próximos passos

Saiba mais sobre a funcionalidade de índice em falta nos artigos seguintes: