Zkuste vytvořit index na (DeviceId, MessageCounter DESC)
.
Zkuste také tento dotaz:
select *
from "Timestamps"
where DeviceId = 1
and MessageCounter = (SELECT MAX(MessageCounter) FROM "Timestamps" WHERE DeviceID = 1)
Jen hádám:Rozdíl ve výkonu může být způsoben tím, že DeviceId = 1
je rozložena na více stránek než DeviceId = 4
. Mám podezření, že tříděním vybagrujete všechny odpovídající stránky, i když nakonec vyberete pouze horní řádek.