sql >> Database teknologi >  >> RDS >> Sqlserver

Overbeviser SQL-serveren om at søge baglæns på klynget indeks efter et indsættelsesskema

SQL Server er ikke i stand til at producere en sådan forespørgselsplan fra 2012. Omskriv forespørgslen:

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

Dette resulterer i en plan, der søger ind i spotquote tabel pr. ID, som du angiver. Dette er det bedste, vi kan gøre. SQL Server er ikke i stand til at afbryde en aggregering, så snart alle grupper, du er interesseret i, har mindst én værdi.




  1. LEN-funktion inkluderer ikke efterfølgende mellemrum i SQL Server

  2. 13 blogartikler om bedste praksis og tips til databasedesign

  3. SQLite gruppe af

  4. Hvordan vælger man et varchar2-felt i formatet 'HH24:MI:SSxFF6' som et INTERVAL HOUR TO SECOND(6)?