heroku Rails控制台查询过于复杂时会退出

n3schb8v  于 2022-11-30  发布在  其他
关注(0)|答案(2)|浏览(157)

我试图在heroku上的生产数据库上运行一个相当复杂的查询。这些通常是一次性的事实查找查询,但每次我试图运行它时都被踢出。在本地,查询运行得很好,而且相当快。如果我将结果赋给一个变量,情况会更糟。
任何关于延长时间之前,heroku踢我或其他方式查询数据库的帮助将不胜感激。
FYI -我正在运行的查询

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)})

控制台关闭没有错误,这是非常没有帮助的。我正在从Heroku CLI运行此命令。

g9icjywg

g9icjywg1#

我认为您应该在sql中提取年份。这样做效率会高得多:

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

whitzsjs2#

现在解决了这个问题。
这可能不适用于所有人,因为您需要使用除基本和业余类型以外的dyno,但是您可以使用不同大小的dyno运行一次性dyno。(虽然这看起来不太可能)我需要使用一个有更多RAM的Dyno。由于这是一个生产版本,我们使用的是Standard-2X Dynos,我可以使用以下命令通过CLI请求此命令

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

更多信息可在此处找到

相关问题