用户.rb
has_many :programs, dependent: :destroy
def active_program
programs.where(active: true).limit(1).first
end
架构.rb
add_index "programs", ["active"], :name => "index_programs_on_active"
add_index "programs", ["user_id"], :name => "index_programs_on_user_id"
程序表中只有 105 行。
这是单个请求的 New Relic 跟踪细分的一部分,经过编辑以专注于相关组件。
我不明白为什么这两个组件需要这么长时间。
我假设Program#find_by_sql
正在使用默认查询跟踪,因此没有执行 57 次实际查询,但为什么在小表上执行简单查询需要 1350 毫秒?
user.active_program
另外,当它调用查询时,为什么要花 1070 毫秒?
我正在使用 Rails 3.2.13 和 Ruby 1.9.3p429。