如何确定Ruby-on-Rails代码生成了哪些SQL?

Chr*_*ton 5 activerecord ruby-on-rails

我有一个使用Rails 2.3用Ruby编写的应用程序.我们使用ActiveRecord.

偶尔,ActiveRecord会生成一些非常低效的SQL.我们可以使用慢查询日志和使用新文件来确定哪些SQL存在问题.但是,确定生成有问题SQL的软件中的代码行确实很困难.它通常是使用关联和named_scopes构建的查询.

我真正喜欢的是用我们生成它代码的文件名和行标记日志文件中的SQL的方法(不是执行查询的ActiveRecord行).

该信息应通过调用者数组提供.我不想转储整个数组,我只想让代码的文件名和行最直接负责.有没有宝石已经这样做了?如果没有,有什么建议吗?

m_x*_*m_x 5

您应该在active-record-query-trace宝石中找到一些灵感

编辑:哎呀,读得太快了,这是针对RoR 3+的。> this <似乎适用于rails 2.3。您可能还会在这里找到一些灵感。