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.