sys.dm_db_missing_index_columns (Transact-SQL)
Retorna informações sobre colunas de tabela de banco de dados sem-índice, excluindo 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
index_handle
Número inteiro que identifica exclusivamente um índice ausente. Pode ser obtido nos seguintes objetos de gerenciamento dinâmico:
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 valores possíveis são:
ValorDescrição
EQUALITYA coluna contribui com um predicado que expressa igualdade, do formulário: table.column =constant_value
INEQUALITYA 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. Para obter uma lista completa de operadores de comparação, consulte Operadores de comparação (Mecanismo de Banco de Dados).
INCLUDEA 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 das informações do índice ausente se quiserem mantê-las após o desligamento e a reinicialização do servidor.
Para obter informações sobre como habilitar e desabilitar a coleta de informações de índice, consulte Sobre o recurso de índices ausentes.
O resultado da função de gerenciamento dinâmico sys.dm_db_missing_index_columns pode ser usado por qualquer ferramenta que leia as informações de índice correspondentes a um index_handle, processe as informações e as converta em instruções CREATE INDEX DDL que implementem o índice ausente. Para obter mais informações sobre como criar instruções DDL, consulte Usando informações de índice ausente para gravar instruções CREATE INDEX.
Para obter mais informações sobre as limitações desse recurso, consulte Limitações do recurso de índices ausentes.
Consistência da transação
Se uma transação cria ou descarta uma tabela, as linhas contendo as informações do índice ausente sobre os objetos descartados sã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
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 AdventureWorks2008R2;
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