Compartilhar via


sys.dm_db_missing_index_columns (Transact-SQL)

Retorna informações sobre as colunas de tabela de banco de dados que estão ausentes em um índice, exceto os índices espaciais. sys.dm_db_missing_index_columns é uma função de gerenciamento dinâmico.

Sintaxe

sys.dm_db_missing_index_columns(index_handle)

Argumentos

Tabela retornada

Nome da coluna

Tipo de dados

Descrição

column_id

int

ID da coluna.

column_name

sysname

Nome da coluna da tabela.

column_usage

varchar(20)

Como a coluna é usada pela consulta. Os possíveis valores são:

Valor

Descrição

EQUALITY

A coluna contribui com um predicado que expressa igualdade, do formulário:

table.column =constant_value

INEQUALITY

A coluna contribui com um predicado que expressa desigualdade, por exemplo, um predicado do formulário:

table.column > constant_value

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

INCLUDE

A coluna não é usada para avaliar um predicado, mas por outro motivo, por exemplo, para cobrir uma consulta.

Comentários

As informações retornadas por sys.dm_db_missing_index_columns 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.

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

Os usuários devem receber a permissão VIEW SERVER STATE ou qualquer permissão que implique que a permissão VIEW SERVER STATE consulte essa função de gerenciamento dinâmico.

Exemplos

O exemplo a seguir executa uma consulta na tabela Address e executa uma consulta usando a exibição de gerenciamento dinâmico sys.dm_db_missing_index_columns para retornar as colunas de tabela com índice ausente.

USE AdventureWorks2012;
GO
SELECT City, StateProvinceID, PostalCode
FROM Person.Address
WHERE StateProvinceID = 9;
GO
SELECT mig.*, statement AS table_name,
    column_id, column_name, column_usage
FROM sys.dm_db_missing_index_details AS mid
CROSS APPLY sys.dm_db_missing_index_columns (mid.index_handle)
INNER JOIN sys.dm_db_missing_index_groups AS mig ON mig.index_handle = mid.index_handle
ORDER BY mig.index_group_handle, mig.index_handle, column_id;
GO

Consulte também

Referência

sys.dm_db_missing_index_details (Transact-SQL)

sys.dm_db_missing_index_groups (Transact-SQL)

sys.dm_db_missing_index_group_stats (Transact-SQL)