使用 ruby ruby 1.9.3p194、rails 3.2.8、postgresql 9.2
控制器死于此查询
@jobs = Job.select([:user_id, :job_actual_wall_time, :job_processor_count, :job_requested_memory, :job_started_at, :job_ended_at]).joins(:account).where("(job_started_at between :start_date and :end_date) or
(job_ended_at between :start_date and :end_date ) or
(job_started_at < :start_date and job_ended_at > :end_date)",
{start_date: @start_date, end_date: @end_date}).where(:account_id => account_id).order(:user_id).order(:job_started_at)
其中@start_date 是 2012 年 7 月 1 日,@end_date 是 2012 年 7 月 4 日,account_id = 8
我可以在控制台上手动设置变量,查询执行时不会出错(该时间间隔内大约有 95,000 个作业)。如果我将结束日期提前一天,则大约有 50,000 个此类作业,并且在 rails 中执行查询。这似乎是请求的记录数。
不知道在哪里调试这个。SO上似乎没有这样的问题;但如果有,请指点我。