【发布时间】:2012-09-17 05:58:45
【问题描述】:
我有一个使用 Rails 2.3 用 Ruby 编写的应用程序。我们使用 ActiveRecord。
有时,ActiveRecord 会生成一些非常低效的 SQL。我们可以使用慢查询日志和new relic 来确定哪些 SQL 存在问题。但是,确定我们的软件中生成有问题的 SQL 的代码行确实很困难。它通常是使用关联和 named_scopes 构建的查询。
我真正想要的是在我们的日志文件中使用生成它的文件名和 我们的 代码行(不是执行查询的 ActiveRecord 行)标记 SQL 的某种方法。
信息应该可以通过调用者数组获得。我不想转储整个数组,我只想要最直接负责的代码的文件名和行。是否有已经这样做的宝石?如果没有,有什么建议吗?
【问题讨论】:
-
一位同事建议我们将文件名和行号(一旦我们确定它们是什么)作为注释放在 SQL 本身中,而不是仅仅放在常规生产日志文件中。这样,慢查询日志也会有这些信息。
标签: ruby-on-rails activerecord