Essayez de créer un index sur (DeviceId, MessageCounter DESC)
.
Essayez également cette requête :
select *
from "Timestamps"
where DeviceId = 1
and MessageCounter = (SELECT MAX(MessageCounter) FROM "Timestamps" WHERE DeviceID = 1)
Juste deviner :la différence de performances peut être due au fait que DeviceId = 1
est réparti sur plus de pages que DeviceId = 4
. En triant, je soupçonne que vous draguez toutes les pages correspondantes, même si vous finissez par sélectionner uniquement la ligne du haut.