Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

Convencendo o SQL Server a pesquisar para trás no índice clusterizado para um esquema somente de inserção


O SQL Server não pode produzir esse plano de consulta a partir de 2012. Reescreva a consulta:
SELECT ids.feeditem_id, MaxID
FROM (VALUES (827), (815), (806)) ids(feeditem_id)
CROSS APPLY (
 select TOP 1 ID AS MaxID
 from spotquote sq
 where sq.feeditem_id = ids.feeditem_id
 ORDER BY ID DESC
) x

Isso resulta em um plano que faz uma busca no spotquote tabela por ID que você especificar. Este é o melhor que podemos fazer. O SQL Server não pode anular uma agregação assim que todos os grupos nos quais você está interessado tiverem pelo menos um valor.