sql >> Databáze >  >> RDS >> Sqlserver

Optimální provedení dotazu na nejnovější záznam pro každý N

Záleží na vašich datech (kolik řádků je na skupinu?) a vašich indexech.

Viz Optimalizace TOP N dotazů na skupinu pro některá srovnání výkonu 3 přístupů.

Ve vašem případě s miliony řádků pouze pro malý počet vozidel bych přidal index na VehicleID, Timestamp a proveďte

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


  1. Změna jazyka systému a chybových zpráv v PostgreSQL

  2. Jak opravit konflikt řazení v dotazu SQL Server?

  3. Urychlení velkého počtu aktualizací a vložení mysql

  4. Nastavte výsledek dotazu na proměnnou v MySQL