我对Ruby on Rails不是特别熟悉,但是我正在解决我们遇到的一个应该清理数据库表的耙工作中遇到的问题。这些表非常快速地增长很大,ActiveRecord生成的查询似乎没有足够的效率来处理它。Raills:获取由delete_all生成的SQL语句
的Ruby调用看起来是这样的:
Source.where("id not IN (#{Log.select('DISTINCT source_id').to_sql})").delete_all
这:
Log.joins(:report).where(:report_id => Report.where(cond)).delete_all
我试图让在SQL,所以我们可以有我们的DBA的尝试优化它更好。我注意到如果我删除“.delete_all”,我可以在调用“.delete_all”之前添加一个“.to_sql”,它给了我查询的SELECT语句。我想看看那个delete_all方法正在生成什么SQL。
有没有办法做到这一点?
您使用的是哪种版本的导轨? – hd1
rails版本3.2.8 – blindsnowmobile