Articles

sys.dm_db_missing_index_details (Transact-SQL)

Posted by admin
  • 03/20/2017
  • 2 minutes to read
    • W
    • r
    • c
    • M
    • s
    • +5

Applies to: SQL Server (all supported versions) Azure SQL Database

Returns detailed information about missing indexes, excluding spatial indexes.

no Azure SQL Database, as visualizações de gerenciamento dinâmico não podem expor informações que afetariam a contenção do banco de dados ou expor informações sobre outros bancos de dados aos quais o usuário tem acesso. Para evitar expor essas informações, todas as linhas que contêm dados que não pertencem ao locatário conectado são filtradas.

nome de Coluna tipo de Dados Descrição
index_handle int Identifica um determinado índice ausente. O identificador é único em todo o servidor. index_handle é a chave desta tabela.
database_id smallint Identifica o banco de dados onde a tabela com o índice ausente reside.
object_id int identifica a tabela onde o índice está faltando.
equality_columns nvarchar(4000) lista separada por vírgulas de colunas que contribuem para predicados de igualdade da forma:
tabela.coluna = constant_value
inequality_columns nvarchar(4000) lista separada por vírgulas de colunas que contribuem para os predicados de desigualdade, por exemplo, predicados da forma:
tabela.coluna > constant_value
qualquer operador de comparação diferente de ” = ” expressa desigualdade.
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 ou incluir colunas, consulte Criar índices com colunas incluídas.
para índices otimizados para memória (hash e nonclustered otimizado para memória), ignore included_columns. Todas as colunas da tabela estão incluídas em todos os índices otimizados para memória.
instrução nvarchar (4000) nome da tabela onde o índice está ausente.

Observações

Informações retornadas por sys.dm_db_missing_index_details é atualizado quando uma consulta é otimizada pelo otimizador de consulta, e não é persistente. As informações de índice ausentes são mantidas apenas até que o SQL Server seja reiniciado. Os administradores de banco de dados devem periodicamente fazer cópias de backup das informações de índice ausentes se quiserem mantê-las após a reciclagem do servidor.

para determinar de quais grupos de índice ausentes um determinado índice ausente faz parte, você pode consultar a visualização de gerenciamento dinâmico sys.dm_db_missing_index_groups equiparando-a com sys.dm_db_missing_index_details com base na coluna index_handle.

Nota

o conjunto de resultados para este DMV é limitado a 600 linhas. Cada linha contém um índice ausente. Se você tiver mais de 600 índices ausentes, deve abordar os índices ausentes existentes para poder visualizar os mais novos.

Usando Falta de Informações do Índice no ÍNDICE de CRIAR Demonstrações

Para converter as informações retornadas por sys.dm_db_missing_index_details em uma instrução CREATE INDEX para o tanto de memória otimizada baseados em disco e índices, igualdade colunas devem ser colocadas antes da desigualdade colunas, e juntos, eles devem fazer a chave de índice. As colunas incluídas devem ser adicionadas à instrução CREATE INDEX usando a cláusula INCLUDE. Para determinar uma ordem efetiva para as colunas de igualdade, ordene-as com base em sua seletividade: liste as colunas mais seletivas primeiro (mais à esquerda na lista de colunas).

para obter mais informações sobre índices otimizados para memória, consulte índices para tabelas otimizadas para memória.

consistência da transação

se uma transação cria ou descarta uma tabela, as linhas que contêm informações de índice ausentes sobre os objetos descartados são removidas desse objeto de gerenciamento dinâmico, preservando a consistência da transação.

permissões

no SQL Server, requer permissão VIEW SERVER STATE.
no SQL Database Basic, S0 e S1 service objectives, e para Bancos de dados em elastic pools, a conta Server admin ou Azure Active Directory admin é necessária. Em todos os outros objetivos do SQL Database service, a permissão VIEW DATABASE STATE é necessária no banco de dados.

Ver Também

Related Post

Leave A Comment