Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

SQL-Abfrage wird langsam ausgeführt (für einige Parameterwerte)

Versuchen Sie, einen Index für (DeviceId, MessageCounter DESC) zu erstellen .

Versuchen Sie auch diese Abfrage:

select * 
   from "Timestamps"
   where DeviceId = 1
   and MessageCounter = (SELECT MAX(MessageCounter) FROM "Timestamps" WHERE DeviceID = 1)

Nur eine Vermutung:Der Leistungsunterschied könnte darauf zurückzuführen sein, dass DeviceId = 1 ist auf mehr Seiten verteilt als DeviceId = 4 . Ich vermute, dass Sie beim Sortieren alle übereinstimmenden Seiten ausgraben, auch wenn Sie am Ende nur die oberste Zeile auswählen.