sql >> Databasteknik >  >> RDS >> Sqlserver

Övertyga SQL-servern att söka baklänges på klustrade index efter ett schema som endast infogas

SQL Server kan inte skapa en sådan frågeplan från och med 2012. Skriv om frågan:

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

Detta resulterar i en plan som gör en sökning i spotquote tabell per ID som du anger. Det här är det bästa vi kan göra. SQL Server kan inte avbryta en aggregering så snart alla grupper du är intresserad av har minst ett värde.




  1. Hur fungerar SQLs DISTINCT-sats?

  2. Flask before_request och teardown_request för DB-anslutningar

  3. kolumnen finns inte fel även när du använder nyckelordet "som".

  4. #1075 - Felaktig tabelldefinition; det kan bara finnas en automatisk kolumn och den måste definieras som en nyckel