bubbaspaarx
bubbaspaarx

Reputation: 726

heroku rails console query kicks out if too complex

I am trying to run a fairly complex query on our production database which is hosted on heroku. These are generally one-off fact finding queries but I am being kicked out each time I try to run it. Locally, the query runs fine and is fairly quick. It's also worse if I assign the result to a variable.

Any help regarding extending the time before heroku kicks me out or other ways to query the database would be greatly appreciated.

FYI - query I was running

authors = Author.includes(:books).where(books: {book_release_date: ('01/01/2020'.to_date.beginning_of_day..'30/12/2022'.to_date.end_of_day)})

The console closes without error which is deeply unhelpful. I am running this from the Heroku CLI i.e. heroku run rails console.

Upvotes: 0

Views: 255

Answers (2)

bubbaspaarx
bubbaspaarx

Reputation: 726

Solved this now.

This may not be applicable to everyone as you will need to be using dynos other than the basic and hobby types but you can run a one-off dyno using a different size. As the query I was running was potentially using too much memory (although this seemed unlikely) I needed to use a dyno with more ram. As this is a production build and we are using Standard-2x dynos, I could request this through the CLI with the following command

heroku run --size=standard-2x rails console

More information can be found here

Upvotes: 2

lili pupu
lili pupu

Reputation: 161

I think you should extract the year in sql for your case. Something like that should be much more efficient:

Author.includes(:books).where("extract(year  from books.book_release_date) = ?", 2020)

Upvotes: 1

Related Questions