Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Aplica-se a: SQL Server
Base de Dados SQL do Azure
Azure SQL Managed Instance
base de dados SQL em Microsoft Fabric
Retorna informação resumida sobre grupos de índices em falta, excluindo índices espaciais.
No Base de Dados SQL do Azure, as vistas de gestão dinâmica não podem expor informações que possam afetar a contenção da base de dados ou informações sobre outras bases de dados a que o utilizador tenha 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. Utilize a coluna sqlserver_start_time na vista sys.dm_os_sys_info para localizar a hora do último arranque do motor da base de dados.
Note
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 VIEW permissão SERVER STATE ou qualquer permissão que implique a VIEW permissão SERVER STATE.
Permissões para SQL Server 2022 e posterior
Requer VIEW permissão ESTADO DE DESEMPENHO DO SERVIDOR 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 CREATE INDEX instrução 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 CREATE INDEX instrução. As colunas incluídas devem estar listadas na cláusula INCLUIR da CREATE INDEX declaração. 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.
Conteúdo relacionado
- Ajuste índices não agrupados com sugestões de índice ausentes
- sys.dm_db_missing_index_columns (Transact-SQL)
- sys.dm_db_missing_index_details (Transact-SQL)
- sys.dm_db_missing_index_groups (Transact-SQL)
- sys.dm_db_missing_index_group_stats_query (Transact-SQL)
- CREATE INDEX (Transact-SQL)
- sys.dm_os_sys_info (Transact-SQL)