Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Requête SQL s'exécutant lentement (pour certaines valeurs de paramètre)

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.