Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Aplica-se a:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Base de dados SQL no Microsoft Fabric
Devolve informações sobre colunas de tabelas de base de dados que não têm um índice.
sys.dm_db_missing_index_columns é uma função de gestão dinâmica.
Sintaxe
sys.dm_db_missing_index_columns(index_handle)
Arguments
index_handle
Um inteiro que identifica de forma única um índice em falta. Pode ser obtido a partir dos seguintes objetos de gestão dinâmica:
sys.dm_db_missing_index_details (Transact-SQL)
sys.dm_db_missing_index_groups (Transact-SQL)
Tabela retornada
| Nome da coluna | Tipo de dados | Description |
|---|---|---|
| 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 e as suas descrições são: IGUALDADE: A coluna contribui para um predicado que expressa igualdade, da forma: tabela.coluna = constant_value DESIGUALDADE: A coluna contribui para um predicado que expressa desigualdade, por exemplo, um predicado da forma: table.column>constant_value. Qualquer operador de comparação que não "=" expressa desigualdade. INCLUIR: A coluna não é usada para avaliar um predicado, mas é usada por outra razão, por exemplo, para cobrir uma consulta. |
Observações
A informação devolvida por sys.dm_db_missing_index_columns é atualizada quando uma consulta é otimizada pelo otimizador de consultas e não é mantida. A informação de índice em falta é mantida apenas até o motor da base de dados ser reiniciado. Os administradores de bases de dados devem periodicamente fazer cópias de segurança da informação do índice em falta se quiserem mantê-la após a reciclagem do servidor. Use a sqlserver_start_time coluna no sys.dm_os_sys_info para localizar a última hora de inicialização do mecanismo de banco de dados.
Consistência de Transações
Se uma transação criar ou eliminar uma tabela, as linhas que contêm informação de índice em falta sobre os objetos descartados são removidas deste objeto de gestão dinâmica, preservando a consistência da transação.
Permissions
Os utilizadores devem receber a permissão VIEW SERVER STATE ou qualquer permissão que implique a permissão VIEW SERVER STATE para consultar esta função de gestão dinâmica.
Permissões para SQL Server 2022 e posterior
Requer a permissão VIEW SERVER PERFORMANCE STATE no servidor.
Examples
O exemplo seguinte executa uma consulta contra a Address tabela e depois executa uma consulta usando a sys.dm_db_missing_index_columns vista de gestão dinâmica para devolver as colunas da tabela que não têm um índice.
USE AdventureWorks2022;
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
Sugestões de índice em falta devem ser combinadas, sempre que possível, entre si e com índices existentes na base de dados atual. Aprenda a aplicar estas sugestões para ajustar índices não agrupados com sugestões de índice em falta.
Próximos passos
Saiba mais sobre a funcionalidade de índice em falta nos artigos seguintes: