ruby-on-rails - ActiveRecord SQL 执行时间

标签 ruby-on-rails activerecord

如何在 Rails 中获取 SQL 查询执行时间? 我可以在日志中看到时间,例如:

 Posting Load (10.8ms)  SELECT "postings".* FROM "postings" ORDER BY "postings"."id" ASC LIMIT 1

但是我如何以编程方式获取该值 (10.08) 以在我的代码中进一步使用它?

最佳答案

您可以使用 ActiveSupport::Notifications检索 SQL 语句的运行时间

您应该能够检测 sql.active_record 以查看 SQL 调用需要多长时间

ActiveSupport::Notifications.subscribe('sql.active_record') do |*args|
  event = ActiveSupport::Notifications::Event.new(*args)
  event.duration #how long it took to run the sql command
end

这段代码没有经过测试,所以我不能保证它有效,但它应该有效

关于ruby-on-rails - ActiveRecord SQL 执行时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34279304/

相关文章:

ruby-on-rails - 在 Rails 项目中要求 'open-uri' 是否安全?

ruby-on-rails - Ruby on Rails 中的自定义模型属性(列名)标题

ruby-on-rails - 如何为空白字段编写 rspec? [Rails3.1]

ruby-on-rails - 在 Rails 3 中为每个普通查询运行额外的计数查询。如何解决这个问题

ruby-on-rails - 关于我在测试数据库中截断表的方法

mysql - 如何使用 Rails+MySQL 获取分组记录的列表(ID)?

sql - 如何在 rails 中添加条件 where 子句

ruby-on-rails - 如何在heroku Rails应用程序上更新seed.rb

ruby-on-rails - 覆盖 ActiveRecord ID

ruby-on-rails - 我如何获得在 rake 任务中工作的 Rails 控制台中工作的 Active Record 查询?