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

Заявка с оптимална ефективност за най-нов запис за всеки N

Зависи от вашите данни (колко реда има в група?) и вашите индекси.

Вижте Оптимизиране на TOP N заявки за група за някои сравнения на производителността на 3 подхода.

Във вашия случай с милиони редове само за малък брой превозни средства бих добавил индекс към VehicleID, Timestamp и направете

SELECT CA.*
FROM   Vehicles V
       CROSS APPLY (SELECT TOP 1 *
                    FROM   ChannelValue CV
                    WHERE  CV.VehicleID = V.VehicleID
                    ORDER  BY TimeStamp DESC) CA  


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Използване на колона псевдоним в клаузата where в ms-sql 2000

  2. Разлика между sys.sql_modules, sys.system_sql_modules и sys.all_sql_modules в SQL Server

  3. SQL Server:Функции с таблично значение срещу съхранени процедури

  4. Връщане на всички редове от конкретен дял в SQL Server (T-SQL)

  5. Как мога да посоча намек за индекс в Entity Framework?