Erw*_*inM 5 sql performance ruby-on-rails-3
在我们的应用中,人们有一个或多个项目.这些项目有开始和结束日期.人们的可用天数有限.
现在我们有一个页面,以逐周显示给定人员的可用性.它目前显示18周.
我们目前计算给定周的可用时间的方式如下:
def days_available(query_date=Date.today)
days_engaged = projects.current.where("start_date < ? AND finish_date > ?", query_date, query_date).sum(:days_on_project)
available = days_total - hours_engaged
end
Run Code Online (Sandbox Code Playgroud)
这意味着要显示应用程序上方描述的页面,将向数据库中触发18(!)个查询.我们有一些页面列出了表格中多人的可用性.对于这些页面,查询量很快就会变得惊人.
它也很慢.
我们如何以更高效的方式处理可用性检索?