sys.dm_db_missing_index_details (Transact-SQL)sys.dm_db_missing_index_details (Transact-SQL)

Aplica-se a:Applies to: simSQL ServerSQL Server (todas as versões compatíveis) yesSQL ServerSQL Server (all supported versions) SimBanco de Dados SQL do AzureAzure SQL DatabaseYesBanco de Dados SQL do AzureAzure SQL DatabaseAplica-se a:Applies to: simSQL ServerSQL Server (todas as versões compatíveis) yesSQL ServerSQL Server (all supported versions) SimBanco de Dados SQL do AzureAzure SQL DatabaseYesBanco de Dados SQL do AzureAzure SQL Database

Retorna informações detalhadas sobre índices ausentes e exclusão de índices espaciais.Returns detailed information about missing indexes, excluding spatial indexes.

No Banco de Dados SQL do AzureAzure SQL Database, 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.In Banco de Dados SQL do AzureAzure SQL Database, dynamic management views cannot expose information that would impact database containment or expose information about other databases the user has access to. Para evitar a exposição dessas informações, todas as linhas que contêm dados que não pertencem ao locatário conectado serão filtradas.To avoid exposing this information, every row that contains data that doesn't belong to the connected tenant is filtered out.

Nome da colunaColumn name Tipo de dadosData type DescriçãoDescription
index_handleindex_handle intint Identifica um determinado índice ausente.Identifies a particular missing index. O identificador é exclusivo no servidor.The identifier is unique across the server. index_handle é a chave desta tabela.index_handle is the key of this table.
database_iddatabase_id smallintsmallint Identifica o banco de dados onde reside a tabela com o índice ausente.Identifies the database where the table with the missing index resides.
object_idobject_id intint Identifica a tabela onde o índice está ausente.Identifies the table where the index is missing.
equality_columnsequality_columns nvarchar(4000)nvarchar(4000) Lista separada por vírgulas de colunas que contribuem para os predicados de igualdade do formulário:Comma-separated list of columns that contribute to equality predicates of the form:

tabela. coluna = constant_valuetable.column =constant_value
inequality_columnsinequality_columns nvarchar(4000)nvarchar(4000) Lista separada por vírgulas de colunas que contribuem para predicados de desigualdade, por exemplo, predicados do formulário:Comma-separated list of columns that contribute to inequality predicates, for example, predicates of the form:

tabela. coluna > constant_valuetable.column > constant_value

Qualquer operador de comparação diferente de "=" expressa desigualdade.Any comparison operator other than "=" expresses inequality.
included_columnsincluded_columns nvarchar(4000)nvarchar(4000) Lista separada por vírgulas de colunas necessárias como colunas de cobertura para a consulta.Comma-separated list of columns needed as covering columns for the query. Para obter mais informações sobre como abranger ou incluir colunas, consulte criar índices com colunas incluídas.For more information about covering or included columns, see Create Indexes with Included Columns.

Para índices com otimização de memória (hash e não clusterizado com otimização de memória), ignore included_columns.For memory-optimized indexes (both hash and memory-optimized nonclustered), ignore included_columns. Todas as colunas da tabela são incluídas em cada índice com otimização de memória.All columns of the table are included in every memory-optimized index.
instruçãostatement nvarchar(4000)nvarchar(4000) Nome da tabela onde o índice está ausente.Name of the table where the index is missing.

ComentáriosRemarks

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.Information returned by sys.dm_db_missing_index_details is updated when a query is optimized by the query optimizer, and is not persisted. As informações do índice ausente são mantidas apenas até o SQL ServerSQL Server ser reiniciado.Missing index information is kept only until SQL ServerSQL Server is restarted. 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.Database administrators should periodically make backup copies of the missing index information if they want to keep it after server recycling.

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.To determine which missing index groups a particular missing index is part of, you can query the sys.dm_db_missing_index_groups dynamic management view by equijoining it with sys.dm_db_missing_index_details based on the index_handle column.

Observação

O conjunto de resultados para essa DMV é limitado a 600 linhas.The result set for this DMV is limited to 600 rows. Cada linha contém um índice ausente.Each row contains one missing index. Se você tiver mais de 600 índices ausentes, você deverá resolver os índices ausentes existentes para que possa exibir os mais recentes.If you have more than 600 missing indexes, you should address the existing missing indexes so you can then view the newer ones.

Usando informações de índice ausente em instruções CREATE INDEXUsing Missing Index Information in CREATE INDEX Statements

Para converter as informações retornadas por Sys. dm_db_missing_index_details em uma instrução CREATE INDEX para os índices baseados em disco e com otimização de memória, as colunas de igualdade devem ser colocadas antes das colunas de desigualdade e, juntas, devem tornar a chave do índice.To convert the information returned by sys.dm_db_missing_index_details into a CREATE INDEX statement for both memory-optimized and disk-based indexes, equality columns should be put before the inequality columns, and together they should make the key of the index. As colunas incluídas devem ser adicionadas à instrução CREATE INDEX com a cláusula INCLUDE.Included columns should be added to the CREATE INDEX statement using the INCLUDE clause. 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).To determine an effective order for the equality columns, order them based on their selectivity: list the most selective columns first (leftmost in the column list).

Para obter mais informações sobre índices com otimização de memória, consulte índices para tabelas com otimização de memória.For more information about memory-optimized indexes, see Indexes for Memory-Optimized Tables.

Consistência de transaçãoTransaction Consistency

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.If a transaction creates or drops a table, the rows containing missing index information about the dropped objects are removed from this dynamic management object, preserving transaction consistency.

PermissõesPermissions

Ativado SQL ServerSQL Server , requer VIEW SERVER STATE permissão.On SQL ServerSQL Server, requires VIEW SERVER STATE permission.
Nas Banco de Dados SQLSQL Database camadas Premium, o requer a VIEW DATABASE STATE permissão no banco de dados.On Banco de Dados SQLSQL Database Premium Tiers, requires the VIEW DATABASE STATE permission in the database. Nas Banco de Dados SQLSQL Database camadas Standard e Basic, o requer o administrador do servidor ou uma conta de administrador do Azure Active Directory .On Banco de Dados SQLSQL Database Standard and Basic Tiers, requires the Server admin or an Azure Active Directory admin account.

Consulte TambémSee Also

sys. dm_db_missing_index_columns (Transact-SQL) sys.dm_db_missing_index_columns (Transact-SQL)
sys. dm_db_missing_index_groups (Transact-SQL) sys.dm_db_missing_index_groups (Transact-SQL)
sys. dm_db_missing_index_group_stats (Transact-SQL)sys.dm_db_missing_index_group_stats (Transact-SQL)