Compartilhar via


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.

Para obter informações sobre como habilitar e desabilitar a coleta de informações de índice, consulte Sobre o recurso de índices ausentes.

Para obter informações sobre as limitações desse recurso, consulte Limitações do recurso de índices ausentes.

Para obter informações sobre a consistência da transação em relação aos objetos de gerenciamento dinâmico de índices ausentes, consulte Sobre o recurso de índices ausentes.

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 <nome_da_tabela> 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).

Para obter mais informações sobre como usar as informações retornadas por esses objetos de gerenciamento dinâmico para escrever instruções CREATE INDEX DDL, consulte Usando informações de índice ausente para gravar instruções CREATE INDEX.