Partilhar via


sys.dm_db_missing_index_details (Transact-SQL)

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

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 dessa 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. Para obter uma lista completa de operadores de comparação, consulte Operadores de comparação (Mecanismo de Banco de Dados).

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.

statement

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.

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 as limitações desse recurso, consulte Limitações do recurso de índices ausentes.

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, 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 como escrever instruções CREATE INDEX que usam as informações de índice ausente por sys.dm_db_missing_index_details, consulte Usando informações de índice ausente para gravar instruções CREATE INDEX.

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. Para obter mais informações sobre a consistência de transação em relação aos objetos de gerenciamento dinâmicos dos índices ausentes, consulte Sobre o recurso de índices ausentes.

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.