Compartilhar via


sys.dm_db_missing_index_details (Transact-SQL)

Retorna informações detalhadas sobre índices ausentes e exclusão de índices espaciais.

No Banco de dados SQL do Windows Azure, 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. Para evitar a exposição dessas informações, cada linha que contém os dados que não pertencem ao locatário conectado será filtrada.

Aplica-se a: SQL Server (SQL Server 2008 até a versão atual), Banco de dados SQL do Windows Azure (versão inicial até a versão atual).

Nome da coluna

Tipo de dados

Descrição

index_handle

int

Identifica um determinado índice ausente. O identificador é exclusivo no servidor. index_handle é a chave desta tabela.

database_id

smallint

Identifica o banco de dados onde reside a tabela com o índice ausente.

object_id

int

Identifica a tabela onde o índice está ausente.

equality_columns

nvarchar(4000)

Lista separada por vírgulas de colunas que contribuem para os predicados de igualdade do formulário:

table.column =constant_value

inequality_columns

nvarchar(4000)

Lista separada por vírgulas de colunas que contribuem para predicados de desigualdade, por exemplo, predicados do formulário:

table.column > constant_value

Qualquer operador de comparação diferente de "=" expressa desigualdade.

included_columns

nvarchar(4000)

Lista separada por vírgulas de colunas necessárias como colunas de cobertura para a consulta. Para obter mais informações sobre como cobrir colunas ou colunas incluídas, consulte Criar índices com colunas incluídas.

Para índices com otimização de memória (hash e memória otimizada não clusterizada), ignore included_columns. Todas as colunas da tabela são incluídas em cada índice com otimização de memória.

instrução

nvarchar(4000)

Nome da tabela onde o índice está ausente.

Comentários

As informações retornadas por sys.dm_db_missing_index_details serão atualizadas quando uma consulta for otimizada pelo otimizador de consulta e não persistirão. As informações do índice ausente são mantidas apenas 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 mantê-las após o desligamento e a reinicialização do servidor.

Para determinar a quais grupos de índice ausente um determinado índice ausente pertence, você pode consultar a exibição de gerenciamento dinâmico sys.dm_db_missing_index_groups unindo-a por igualdade a sys.dm_db_missing_index_details com base na coluna index_handle.

Usando informações de índice ausente em instruções CREATE INDEX

Para converter as informações retornadas por sys.dm_db_missing_index_details em uma instrução CREATE INDEX para índices com otimização de memória e baseados em disco, as colunas iguais devem ser colocadas antes das colunas desiguais; juntas, elas devem gerar a chave do índice. As colunas incluídas devem ser adicionadas à instrução CREATE INDEX com a cláusula INCLUDE. Para determinar uma ordem efetiva para as colunas desiguais, ordene-as com base em sua seletividade: liste as colunas mais seletivas primeiro (a mais à esquerda na lista de colunas).

Para obter mais informações sobre índices com otimização de memória, consulte Diretrizes para usar índices em tabelas com otimização de memória.

Consistência de transação

Se uma transação criar ou descartar uma tabela, as linhas contendo as informações de índice ausente sobre os objetos descartados serão removidas do objeto de gerenciamento dinâmico, preservando a consistência da transação.

Permissões

Para consultar essa exibição de gerenciamento dinâmica, os usuários devem receber a permissão VIEW SERVER STATE ou qualquer permissão que implique a permissão VIEW SERVER STATE.

Consulte também

Referência

sys.dm_db_missing_index_columns (Transact-SQL)

sys.dm_db_missing_index_groups (Transact-SQL)

sys.dm_db_missing_index_group_stats (Transact-SQL)