sys.dm_db_missing_index_group_stats (Transact-SQL)
Retorna informações resumidas sobre grupos de índices ausentes, excluindo índices espaciais.
Nome da coluna |
Tipo de dados |
Descrição |
---|---|---|
group_handle |
int |
Identifica um grupo de índices ausentes. Esse identificador é exclusivo no servidor. As outras colunas fornecem informações sobre todas as consultas para as quais o índice no grupo é considerado ausente. Um grupo de índice contém apenas um índice. |
unique_compiles |
bigint |
Número de compilações e recompilações que se beneficiariam deste grupo de índice ausente. Compilações e recompilações de muitas consultas diferentes podem contribuir para esse valor de coluna. |
user_seeks |
bigint |
Número de buscas geradas por consultas de usuário para as quais o índice recomendado no grupo poderia ter sido usado. |
user_scans |
bigint |
Número de exames gerados por consultas de usuário para as quais o índice recomendado no grupo poderia ter sido usado. |
last_user_seek |
datetime |
Data e hora da última busca gerada por consultas de usuário para as quais o índice recomendado no grupo poderia ter sido usado. |
last_user_scan |
datetime |
Data e hora do último exame gerado por consultas de usuário para as quais o índice recomendado no grupo poderia ter sido usado. |
avg_total_user_cost |
float |
Custo médio das consultas de usuário que poderia ser reduzido pelo índice no grupo. |
avg_user_impact |
float |
Benefício da porcentagem média que as consultas de usuário poderiam experimentar se esse grupo de índices ausentes fosse implementado. O valor indica que o custo da consulta ficaria na média dessa porcentagem se esse grupo de índices ausentes fosse implementado. |
system_seeks |
bigint |
Número de buscas geradas por consultas de sistema, como consultas de estatística automáticas, para as quais o índice recomendado no grupo poderia ter sido usado. Para obter mais informações, consulte Classe de evento Auto Stats. |
system_scans |
bigint |
Número de exames gerados por consultas de sistema para as quais o índice recomendado no grupo poderia ter sido usado. |
last_system_seek |
datetime |
Data e hora da última busca gerada no sistema por consultas de sistema para as quais o índice recomendado no grupo poderia ter sido usado. |
last_system_scan |
datetime |
Data e hora do último exame gerado no sistema por consultas de sistema para as quais o índice recomendado no grupo poderia ter sido usado. |
avg_total_system_cost |
float |
Custo médio das consultas de sistema que poderia ser reduzido pelo índice no grupo. |
avg_system_impact |
float |
Benefício de porcentagem média que as consultas de sistema poderiam experimentar se esse grupo de índices ausentes fosse implementado. O valor indica que o custo da consulta ficaria na média dessa porcentagem se esse grupo de índices ausentes fosse implementado. |
Comentários
Informações retornadas por sys.dm_db_missing_index_group_stats são atualizadas por todas as execuções de consulta, não por todas as compilações ou recompilações de consulta. As estatísticas de uso não são persistentes e só serão mantidas até o SQL Server ser reiniciado. Os administradores de banco de dados devem periodicamente gerar cópias de backup de informações de índice ausente se quiserem manter as estatísticas de uso após o desligamento e a reinicialização do servidor.
Permissões
Para consultar essa exibição de gerenciamento dinâmico, os usuários devem receber a permissão VIEW SERVER STATE ou qualquer permissão que implique essa permissão.
Exemplos
Os exemplos a seguir mostram como usar a exibição de gerenciamento dinâmico sys.dm_db_missing_index_group_stats.
A.Localizar os 10 índices ausentes com o aperfeiçoamento antecipado mais alto para consultas de usuário
A consulta seguinte determina quais os 10 índices ausentes que produziriam o aperfeiçoamento cumulativo antecipado mais alto, em ordem decrescente, para consultas de usuário.
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.Localizar os índices ausentes individuais e seus detalhes de coluna de um determinado grupo de índice ausente
A consulta seguinte determina quais índices ausentes fazem parte de um determinado grupo de índices ausentes e exibe os detalhes de sua coluna. Por esse exemplo, o identificador de grupo de índices ausentes é 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 do banco de dados, do esquema e da tabela em que um índice está ausente. Fornece também os nomes das colunas que deveriam ser usadas para a chave de índice. Ao gravar a instrução CREATE INDEX DDL para implementar índices ausentes, liste primeiro as colunas iguais e, em seguida, as desiguais na cláusula ON <table_name> da instrução CREATE INDEX. As colunas incluídas devem ser listadas na cláusula INCLUDE da instrução CREATE INDEX. Para determinar uma ordem efetiva para as colunas iguais, ordene-as com base em sua seletividade, listando as colunas mais seletivas primeiro (a mais à esquerda na lista de colunas).
Consulte também
Referência
sys.dm_db_missing_index_columns (Transact-SQL)
sys.dm_db_missing_index_details (Transact-SQL)