sys.dm_db_missing_index_group_stats (Transact-SQL)sys.dm_db_missing_index_group_stats (Transact-SQL)

APLICA-SE A: simSQL Server simBanco de Dados SQL do Azure nãoAzure Synapse Analytics (SQL DW) nãoParallel Data Warehouse APPLIES TO: yesSQL Server yesAzure SQL Database noAzure Synapse Analytics (SQL DW) noParallel Data Warehouse

Retorna informações resumidas sobre grupos de índices ausentes, excluindo índices espaciais.Returns summary information about groups of missing indexes, excluding spatial indexes.

No Banco de dados SQL do AzureAzure SQL Database, as exibições de gerenciamento dinâmico não podem expor informações que afetarão a contenção do banco de dados ou informações sobre outros bancos de dados aos quais o usuário tem acesso.In Banco de dados SQL do AzureAzure SQL Database, dynamic management views cannot expose information that would impact database containment or expose information about other databases the user has access to. Para evitar a exposição dessas informações, cada linha que contém dados que não pertencem ao locatário conectado será filtrada.To avoid exposing this information, every row that contains data that doesn't belong to the connected tenant is filtered out.

Nome da colunaColumn name Tipo de dadosData type DescriçãoDescription
group_handlegroup_handle intint Identifica um grupo de índices ausentes.Identifies a group of missing indexes. Esse identificador é exclusivo no servidor.This identifier is unique across the server.

As outras colunas fornecem informações sobre todas as consultas para as quais o índice no grupo é considerado ausente.The other columns provide information about all queries for which the index in the group is considered missing.

Um grupo de índice contém apenas um índice.An index group contains only one index.
unique_compilesunique_compiles bigintbigint Número de compilações e recompilações que se beneficiariam deste grupo de índice ausente.Number of compilations and recompilations that would benefit from this missing index group. Compilações e recompilações de muitas consultas diferentes podem contribuir para esse valor de coluna.Compilations and recompilations of many different queries can contribute to this column value.
user_seeksuser_seeks bigintbigint Número de buscas geradas por consultas de usuário para as quais o índice recomendado no grupo poderia ter sido usado.Number of seeks caused by user queries that the recommended index in the group could have been used for.
user_scansuser_scans bigintbigint Número de exames gerados por consultas de usuário para as quais o índice recomendado no grupo poderia ter sido usado.Number of scans caused by user queries that the recommended index in the group could have been used for.
last_user_seeklast_user_seek datetimedatetime Data e hora da última busca gerada por consultas de usuário para as quais o índice recomendado no grupo poderia ter sido usado.Date and time of last seek caused by user queries that the recommended index in the group could have been used for.
last_user_scanlast_user_scan datetimedatetime Data e hora do último exame gerado por consultas de usuário para as quais o índice recomendado no grupo poderia ter sido usado.Date and time of last scan caused by user queries that the recommended index in the group could have been used for.
avg_total_user_costavg_total_user_cost floatfloat Custo médio das consultas de usuário que poderia ser reduzido pelo índice no grupo.Average cost of the user queries that could be reduced by the index in the group.
avg_user_impactavg_user_impact floatfloat Benefício da porcentagem média que as consultas de usuário poderiam experimentar se esse grupo de índices ausentes fosse implementado.Average percentage benefit that user queries could experience if this missing index group was implemented. O valor indica que o custo da consulta ficaria na média dessa porcentagem se esse grupo de índices ausentes fosse implementado.The value means that the query cost would on average drop by this percentage if this missing index group was implemented.
system_seekssystem_seeks bigintbigint 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.Number of seeks caused by system queries, such as auto stats queries, that the recommended index in the group could have been used for. Para obter mais informações, consulte classe de evento Auto Stats.For more information, see Auto Stats Event Class.
system_scanssystem_scans bigintbigint Número de exames gerados por consultas de sistema para as quais o índice recomendado no grupo poderia ter sido usado.Number of scans caused by system queries that the recommended index in the group could have been used for.
last_system_seeklast_system_seek datetimedatetime 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.Date and time of last system seek caused by system queries that the recommended index in the group could have been used for.
last_system_scanlast_system_scan datetimedatetime 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.Date and time of last system scan caused by system queries that the recommended index in the group could have been used for.
avg_total_system_costavg_total_system_cost floatfloat Custo médio das consultas de sistema que poderia ser reduzido pelo índice no grupo.Average cost of the system queries that could be reduced by the index in the group.
avg_system_impactavg_system_impact floatfloat Benefício de porcentagem média que as consultas de sistema poderiam experimentar se esse grupo de índices ausentes fosse implementado.Average percentage benefit that system queries could experience if this missing index group was implemented. O valor indica que o custo da consulta ficaria na média dessa porcentagem se esse grupo de índices ausentes fosse implementado.The value means that the query cost would on average drop by this percentage if this missing index group was implemented.

ComentáriosRemarks

Informações retornadas por db_missing_index_group_stats é atualizado por cada execução da consulta, não por cada compilação de consulta ou a recompilação.Information returned by sys.dm_db_missing_index_group_stats is updated by every query execution, not by every query compilation or recompilation. As estatísticas de uso não são persistentes e só serão mantidas até o SQL ServerSQL Server ser reiniciado.Usage statistics are not persisted and are kept only until SQL ServerSQL Server is restarted. 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.Database administrators should periodically make backup copies of the missing index information if they want to keep the usage statistics after server recycling.

Observação

Conjunto de resultados para essa DMV são limitado a 600 linhas.The result set for this DMV is limited to 600 rows. Cada linha contém um índice ausente.Each row contains one missing index. Se você tiver mais de 600 índices ausentes, você deve tratar os índices ausentes existentes para que você possa exibir, em seguida, as mais recentes.If you have more than 600 missing indexes, you should address the existing missing indexes so you can then view the newer ones.

PermissõesPermissions

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.To query this dynamic management view, users must be granted the VIEW SERVER STATE permission or any permission that implies the VIEW SERVER STATE permission.

ExemplosExamples

Os exemplos a seguir ilustram como usar o db_missing_index_group_stats exibição de gerenciamento dinâmico.The following examples illustrate how to use the sys.dm_db_missing_index_group_stats dynamic management view.

A.A. Localizar os 10 índices ausentes com o aperfeiçoamento antecipado mais alto para consultas de usuárioFind the 10 missing indexes with the highest anticipated improvement for user queries

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.The following query determines which 10 missing indexes would produce the highest anticipated cumulative improvement, in descending order, for user queries.

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.B. Localizar os índices ausentes individuais e seus detalhes de coluna de um determinado grupo de índice ausenteFind the individual missing indexes and their column details for a particular missing index group

A consulta seguinte determina quais índices ausentes fazem parte de um determinado grupo de índices ausentes e exibe os detalhes de sua coluna.The following query determines which missing indexes comprise a particular missing index group, and displays their column details. Por esse exemplo, o identificador de grupo de índices ausentes é 24.For the sake of this example, the missing index group handle is 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.This query provides the name of the database, schema, and table where an index is missing. Fornece também os nomes das colunas que deveriam ser usadas para a chave de índice.It also provides the names of the columns that should be used for the index key. Ao escrever a instrução CREATE INDEX DDL para implementar índices ausentes, liste primeiro as colunas de igualdade e, em seguida, as colunas de desigualdade em ON < table_name> cláusula da instrução CREATE INDEX.When writing the CREATE INDEX DDL statement to implement missing indexes, list equality columns first and then inequality columns in the ON <table_name> clause of the CREATE INDEX statement. As colunas incluídas devem ser listadas na cláusula INCLUDE da instrução CREATE INDEX.Included columns should be listed in the INCLUDE clause of the CREATE INDEX statement. 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).To determine an effective order for the equality columns, order them based on their selectivity, listing the most selective columns first (leftmost in the column list).

Consulte tambémSee Also

sys.dm_db_missing_index_columns (Transact-SQL) sys.dm_db_missing_index_columns (Transact-SQL)
sys.dm_db_missing_index_details (Transact-SQL) sys.dm_db_missing_index_details (Transact-SQL)
sys.dm_db_missing_index_groups (Transact-SQL) sys.dm_db_missing_index_groups (Transact-SQL)
CREATE INDEX (Transact-SQL)CREATE INDEX (Transact-SQL)