sql >> Databasteknik >  >> RDS >> PostgreSQL

ActiveRecord-frågan mycket långsammare än rak SQL?

Ett par saker hoppar ut.

För det första, om den här koden anropas 2000 gånger och tar 250 ms extra att köra, är det ~0,125 ms per anrop för att konvertera Arel till SQL, vilket inte är orealistiskt.

För det andra är jag inte säker på insidan av Range i Ruby, men lower..upper kanske gör beräkningar som storleken på intervallet och andra saker, vilket kommer att bli en stor prestationssuccé.

Ser du samma prestationsträff med följande?

sum = Table.
      where(:id => id).
      where(:created_at => "BETWEEN ? and ?", lower, upper).
      sum(:my_column)



  1. automatisera en SQL-fråga som ska köras varje månad

  2. Optimerar min mysql-fråga för att använda index för sortering

  3. Konstiga resultat med ordning efter och gräns

  4. Förbered testdata på Oracle med blob-kolumn