sql >> Base de Datos >  >> RDS >> Sqlserver

Convencer al servidor SQL para buscar hacia atrás en el índice agrupado para un esquema de solo inserción

SQL Server no puede producir un plan de consulta de este tipo a partir de 2012. Vuelva a escribir la 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

Esto da como resultado un plan que busca en el spotquote tabla por ID que especifique. Esto es lo mejor que podemos hacer. SQL Server no puede cancelar una agregación tan pronto como todos los grupos que le interesan tengan al menos un valor.