Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

Query SQL in esecuzione lenta (per alcuni valori di parametro)

Prova a creare un indice su (DeviceId, MessageCounter DESC) .

Inoltre, prova questa query:

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

Solo per indovinare:la differenza di prestazioni potrebbe essere dovuta a DeviceId = 1 è distribuito su più pagine di DeviceId = 4 . Con l'ordinamento, sospetto che tu stia estrapolando tutte le pagine corrispondenti, anche se finisci per selezionare solo la riga superiore.