sql >> Database >  >> RDS >> Sqlserver

Overtuigende SQL-server om achteruit te zoeken op geclusterde index voor een schema met alleen invoegen

SQL Server is niet in staat om een ​​dergelijk queryplan te produceren vanaf 2012. Herschrijf de query:

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

Dit resulteert in een plan dat een zoektocht doet naar de spotquote tabel per ID die u opgeeft. Dit is het beste wat we kunnen doen. SQL Server kan een aggregatie niet afbreken zodra alle groepen waarin u geïnteresseerd bent ten minste één waarde hebben.




  1. Hoe krijg ik de MIN() van twee velden in Postgres?

  2. Opties voor cloudback-up voor MySQL- en MariaDB-databases

  3. Meerdere inner joins met meerdere tabellen

  4. Waarom gebruikt PostgreSQL (9.1) geen index voor eenvoudige selectie van gelijkheid?