Sintomas
Assuma que utiliza o Microsoft SQL Server 2014. Pode encontrar os seguintes dois problemas incluídos nas notas de lançamento do SQL Server 2014:
-
Os detalhes do índice em falta relatam incorretamente colunas para a tabela otimizada da memóriaProblema: Se o SQL Server 2014 detetar um índice em falta para uma consulta numa tabela otimizada pela memória, reportará um índice em falta no SHOWPLAN_XML, bem como nos DMVs de índice em falta, como sys.dm_db_missing_index_details. Em alguns casos, os detalhes do índice em falta conterão colunas incluídas. Como todas as colunas são implicitamente incluídas com todos os índices em tabelas otimizadas pela memória, não é permitido especificar explicitamente colunas incluídas com índices otimizados pela memória.
-
Os detalhes do índice em falta omitem índices em falta se existir um índice de haxixe mas não for adequado para aquestão da consulta: Se tiver um índice HASH nas colunas de uma tabela otimizada de memória referenciada numa consulta, mas o índice não pode ser utilizado para a consulta, o SQL Server 2014 nem sempre reportará um índice em falta em SHOWPLAN_XML e no DMV sys.dm_db_missing_index_details. Em particular, se uma consulta contiver predicados de igualdade que envolvam um subconjunto das colunas-chave de índice ou se contiver predicados de desigualdade que envolvam as colunas-chave de índice, o índice HASH não pode ser utilizado como está, e um índice diferente seria necessário para executar a consulta de forma eficiente.
Causa
Os problemas ocorrem porque a lógica de índice em falta no otimizador de consultas não diferencia entre os índices tradicionais sem agrupamento nas tabelas baseadas em disco e os novos tipos de índice para tabelas otimizadas pela memória.
Resolução
Os problemas foram corrigidos pela primeira vez na seguinte atualização cumulativa do SQL Server.
Atualização Cumulativa 1 para SQL Server 2014 /en-us/help/2931693
Cada nova atualização cumulativa do SQL Server contém todos os hotfixes e todas as correções de segurança que foram incluídas com a atualização cumulativa anterior. Confira as últimas atualizações cumulativas do SQL Server:
Solução
Para contornar estas questões, utilize as seguintes soluções alternativas:
-
Solução alternativa para a emissão: Os detalhes do índice em falta relatam incorretamente colunas para quadros otimizados na memóriaDo não especificar a cláusula INCLUDE com índices em tabelas otimizadas pela memória.
-
Solução alternativa para a emissão: Os detalhes do índice em falta omitem índices em falta se existe um índice de haxixe, mas não é adequado para a consulta No caso em que está a utilizar índices de haxixe, inspecione as consultas e os planos de consulta para determinar se as consultas poderiam beneficiar das operações de Index Seek num subconjunto da chave de índice, ou operações de Index Seek sobre predicados de desigualdade. Se precisar de procurar um subconjunto da tecla de índice, utilize um índice não-aglomerado ou utilize um índice HASH exatamente nas colunas que precisa de procurar. Se precisar de procurar um predicado de desigualdade, utilize um índice não-aglomerado em vez de HASH.
Nota As soluções alternativas são de SqL Server 2014 Notas de lançamento
Estado
A Microsoft confirmou que este problema ocorre nos produtos da Microsoft listados na secção "Aplica-se a".