Опитайте да създадете индекс на (DeviceId, MessageCounter DESC)
.
Също така опитайте тази заявка:
select *
from "Timestamps"
where DeviceId = 1
and MessageCounter = (SELECT MAX(MessageCounter) FROM "Timestamps" WHERE DeviceID = 1)
Само предполагам:разликата в производителността може да се дължи на DeviceId = 1
е разпръснат в повече страници от DeviceId = 4
. Със сортирането подозирам, че извличате всички съответстващи страници, дори ако в крайна сметка изберете само горния ред.