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.

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)

sys.dm_db_missing_index_groups (Transact-SQL)

CREATE INDEX (Transact-SQL)