Ruby on rails 如何确定哪些RubyonRails代码生成了一些SQL?

Ruby on rails 如何确定哪些RubyonRails代码生成了一些SQL?,ruby-on-rails,activerecord,Ruby On Rails,Activerecord,我有一个使用Rails 2.3用Ruby编写的应用程序。我们使用ActiveRecord 有时候,ActiveRecord会生成一些效率极低的SQL。我们可以使用较慢的查询日志和使用。然而,确定软件中生成有问题SQL的代码行可能非常困难。它通常是使用关联和命名范围建立的查询 我真正想要的是用文件名和生成SQL的代码行(而不是执行查询的ActiveRecord行)标记日志文件中的SQL 这些信息应该可以通过调用者阵列获得。我不想转储整个数组,我只想让我们的代码的文件名和行最直接负责。是否有一种宝石

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

有时候,ActiveRecord会生成一些效率极低的SQL。我们可以使用较慢的查询日志和使用。然而,确定软件中生成有问题SQL的代码行可能非常困难。它通常是使用关联和命名范围建立的查询

我真正想要的是用文件名和生成SQL的代码行(而不是执行查询的ActiveRecord行)标记日志文件中的SQL


这些信息应该可以通过调用者阵列获得。我不想转储整个数组,我只想让我们的代码的文件名和行最直接负责。是否有一种宝石已经做到了这一点?如果没有,有什么建议吗?

你应该在创业板上找到一些灵感


编辑:wooops,读得太快,这是针对RoR 3+的

New Relic将为具有和事务跟踪功能的单个慢速SQL查询提供完整的堆栈跟踪。

确实包含生成哪个SQL查询的ruby代码行的信息。

一位同事建议我们将文件名和行号(一旦我们确定它们是什么)作为注释放在SQL本身中,而不仅仅是将其放入常规生产日志文件中。这样,慢速查询日志也会包含此信息。太棒了!感谢您参考Rails 3 gem。奇怪的是,没有更多的人需要这个。。。