【问题标题】:Output all possible SQL statementes in a Rails Application在 Rails 应用程序中输出所有可能的 SQL 语句
【发布时间】:2010-07-23 08:40:04
【问题描述】:
我刚刚继承了一个中型 Rails 应用程序,我想立即尝试对其进行优化。我想从数据库开始,以确保将索引放置在它们需要的位置等等。因此,我需要快速找出 ActiveRecord 可能生成的所有可能的 SQL 语句,以便我可以将其与数据库模式进行比较,并查看可以立即优化的地方。
简而言之:是否有与 rake routes 等效的方法,可以输出所有可能的 SQL 模板?
【问题讨论】:
标签:
sql
ruby-on-rails
activerecord
【解决方案1】:
艰难的路
Rails 开发日志文件应包含服务器执行期间使用的所有 sql。您可以对文件进行 grep 选择语句 - 使用正则表达式可能会变得更聪明一些。不幸的是,您不太可能处理其中的所有信息
异常管理
更好的方法是使用一些简单的监控解决方案在请求运行过慢时提醒您(例如scout)。然后查看 Rails 日志文件,看看问题是否与 DB 有关。
使用数据库工具
如果查询运行缓慢,大多数数据库会通过日志文件提醒您 - 例如 MySQL 具有“慢查询日志”。