Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

Überzeugen des SQL-Servers, den gruppierten Index rückwärts nach einem Nur-Einfüge-Schema zu durchsuchen

SQL Server kann seit 2012 keinen solchen Abfrageplan erstellen. Schreiben Sie die Abfrage neu:

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

Dies führt zu einem Plan, der nach spotquote sucht Tabelle pro ID, die Sie angeben. Das ist das Beste, was wir tun können. SQL Server kann eine Aggregation nicht abbrechen, sobald alle Gruppen, an denen Sie interessiert sind, mindestens einen Wert haben.