Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

SQL заявката се изпълнява бавно (за някои стойности на параметри)

Опитайте да създадете индекс на (DeviceId, MessageCounter DESC) .

Също така опитайте тази заявка:

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

Само предполагам:разликата в производителността може да се дължи на DeviceId = 1 е разпръснат в повече страници от DeviceId = 4 . Със сортирането подозирам, че извличате всички съответстващи страници, дори ако в крайна сметка изберете само горния ред.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Комбиниране (конкатенация) на дата и час в дата и час

  2. Каква е целта на използването на CommandType.Tabledirect

  3. SQL как да създадете няколко реда от един ред

  4. Влезте в Microsoft SQL Server Грешка:18456

  5. Намиране на медиана между ДВЕ дати SQL Server 2008