Skip to content
This repository has been archived by the owner on Mar 12, 2020. It is now read-only.

Fix N+1 queries when finding AssignmentRepos and GroupAssignmentRepos #712

Merged
merged 3 commits into from
Aug 19, 2016

Conversation

cyhsutw
Copy link
Contributor

@cyhsutw cyhsutw commented Aug 19, 2016

Find these logs when accessing /classrooms/:organization_id/assignments/:id:

 user: cyhsutw
 /classrooms/19820098-google-summer-of-code-2016/assignments/try-swift
 N+1 Query detected
   AssignmentRepo => [:organization]
   Add to your finder: :includes => [:organization]
 N+1 Query method call stack
   /Users/cyhsutw/Projects/GSoC/classroom/app/models/assignment_repo.rb:48:in `github_repository'
   /Users/cyhsutw/Projects/GSoC/classroom/app/models/assignment_repo.rb:36:in `disabled?'
   /Users/cyhsutw/Projects/GSoC/classroom/app/views/assignment_repos/_assignment_repo.html.erb:1:in `_app_views_assignment_repos__assignment_repo_html_erb__989256760143947223_70262467422220'
   /Users/cyhsutw/Projects/GSoC/classroom/app/views/assignments/show.html.erb:34:in `_app_views_assignments_show_html_erb___1588057884647500143_70262486990860'
   /Users/cyhsutw/Projects/GSoC/classroom/app/models/assignment_repo.rb:48:in `github_repository'
   /Users/cyhsutw/Projects/GSoC/classroom/app/models/assignment_repo.rb:36:in `disabled?'
   /Users/cyhsutw/Projects/GSoC/classroom/app/views/assignment_repos/_assignment_repo.html.erb:1:in `_app_views_assignment_repos__assignment_repo_html_erb__989256760143947223_70262467422220'
   /Users/cyhsutw/Projects/GSoC/classroom/app/views/assignments/show.html.erb:34:in `_app_views_assignments_show_html_erb___1588057884647500143_70262486990860'

 user: cyhsutw
 /classrooms/19820098-google-summer-of-code-2016/assignments/try-swift
 N+1 Query detected
   AssignmentRepo => [:user]
   Add to your finder: :includes => [:user]
 N+1 Query method call stack
   /Users/cyhsutw/Projects/GSoC/classroom/app/models/assignment_repo.rb:67:in `user'
   /Users/cyhsutw/Projects/GSoC/classroom/app/models/assignment_repo.rb:31:in `github_user'
   /Users/cyhsutw/Projects/GSoC/classroom/app/views/assignment_repos/_assignment_repo.html.erb:3:in `_app_views_assignment_repos__assignment_repo_html_erb__989256760143947223_70262467422220'
   /Users/cyhsutw/Projects/GSoC/classroom/app/views/assignments/show.html.erb:34:in `_app_views_assignments_show_html_erb___1588057884647500143_70262486990860'
   /Users/cyhsutw/Projects/GSoC/classroom/app/models/assignment_repo.rb:67:in `user'
   /Users/cyhsutw/Projects/GSoC/classroom/app/models/assignment_repo.rb:31:in `github_user'
   /Users/cyhsutw/Projects/GSoC/classroom/app/views/assignment_repos/_assignment_repo.html.erb:3:in `_app_views_assignment_repos__assignment_repo_html_erb__989256760143947223_70262467422220'
   /Users/cyhsutw/Projects/GSoC/classroom/app/views/assignments/show.html.erb:34:in `_app_views_assignments_show_html_erb___1588057884647500143_70262486990860'

Also, we have these when accessing /classrooms/:organization_id/group-assignments/:id:

 user: cyhsutw
 /classrooms/19820098-google-summer-of-code-2016/group-assignments/fun-with-swift-optionals
 N+1 Query detected
   GroupAssignmentRepo => [:organization]
   Add to your finder: :includes => [:organization]
 N+1 Query method call stack
   /Users/cyhsutw/Projects/GSoC/classroom/app/models/group_assignment_repo.rb:43:in `github_repository'
   /Users/cyhsutw/Projects/GSoC/classroom/app/models/group_assignment_repo.rb:39:in `disabled?'
   /Users/cyhsutw/Projects/GSoC/classroom/app/views/group_assignment_repos/_group_assignment_repo.html.erb:1:in `_app_views_group_assignment_repos__group_assignment_repo_html_erb__1898958708462771443_70262520538040'
   /Users/cyhsutw/Projects/GSoC/classroom/app/views/group_assignments/show.html.erb:33:in `_app_views_group_assignments_show_html_erb__4258249158097083080_70262537730380'
   /Users/cyhsutw/Projects/GSoC/classroom/app/models/group_assignment_repo.rb:43:in `github_repository'
   /Users/cyhsutw/Projects/GSoC/classroom/app/models/group_assignment_repo.rb:39:in `disabled?'
   /Users/cyhsutw/Projects/GSoC/classroom/app/views/group_assignment_repos/_group_assignment_repo.html.erb:1:in `_app_views_group_assignment_repos__group_assignment_repo_html_erb__1898958708462771443_70262520538040'
   /Users/cyhsutw/Projects/GSoC/classroom/app/views/group_assignments/show.html.erb:33:in `_app_views_group_assignments_show_html_erb__4258249158097083080_70262537730380'

 user: cyhsutw
 /classrooms/19820098-google-summer-of-code-2016/group-assignments/fun-with-swift-optionals
 N+1 Query detected
   GroupAssignmentRepo => [:group]
   Add to your finder: :includes => [:group]
 N+1 Query method call stack
   /Users/cyhsutw/Projects/GSoC/classroom/app/models/group_assignment_repo.rb:47:in `github_team'
   /Users/cyhsutw/Projects/GSoC/classroom/app/models/group_assignment_repo.rb:39:in `disabled?'
   /Users/cyhsutw/Projects/GSoC/classroom/app/views/group_assignment_repos/_group_assignment_repo.html.erb:1:in `_app_views_group_assignment_repos__group_assignment_repo_html_erb__1898958708462771443_70262520538040'
   /Users/cyhsutw/Projects/GSoC/classroom/app/views/group_assignments/show.html.erb:33:in `_app_views_group_assignments_show_html_erb__4258249158097083080_70262537730380'
   /Users/cyhsutw/Projects/GSoC/classroom/app/models/group_assignment_repo.rb:47:in `github_team'
   /Users/cyhsutw/Projects/GSoC/classroom/app/models/group_assignment_repo.rb:39:in `disabled?'
   /Users/cyhsutw/Projects/GSoC/classroom/app/views/group_assignment_repos/_group_assignment_repo.html.erb:1:in `_app_views_group_assignment_repos__group_assignment_repo_html_erb__1898958708462771443_70262520538040'
   /Users/cyhsutw/Projects/GSoC/classroom/app/views/group_assignments/show.html.erb:33:in `_app_views_group_assignments_show_html_erb__4258249158097083080_70262537730380'

 user: cyhsutw
 /classrooms/19820098-google-summer-of-code-2016/group-assignments/fun-with-swift-optionals
 N+1 Query detected
   Group => [:organization]
   Add to your finder: :includes => [:organization]
 N+1 Query method call stack
   /Users/cyhsutw/Projects/GSoC/classroom/app/models/group.rb:32:in `github_team'
   /Users/cyhsutw/Projects/GSoC/classroom/app/models/group_assignment_repo.rb:47:in `github_team'
   /Users/cyhsutw/Projects/GSoC/classroom/app/models/group_assignment_repo.rb:39:in `disabled?'
   /Users/cyhsutw/Projects/GSoC/classroom/app/views/group_assignment_repos/_group_assignment_repo.html.erb:1:in `_app_views_group_assignment_repos__group_assignment_repo_html_erb__1898958708462771443_70262520538040'
   /Users/cyhsutw/Projects/GSoC/classroom/app/views/group_assignments/show.html.erb:33:in `_app_views_group_assignments_show_html_erb__4258249158097083080_70262537730380'
   /Users/cyhsutw/Projects/GSoC/classroom/app/models/group.rb:32:in `github_team'
   /Users/cyhsutw/Projects/GSoC/classroom/app/models/group_assignment_repo.rb:47:in `github_team'
   /Users/cyhsutw/Projects/GSoC/classroom/app/models/group_assignment_repo.rb:39:in `disabled?'
   /Users/cyhsutw/Projects/GSoC/classroom/app/views/group_assignment_repos/_group_assignment_repo.html.erb:1:in `_app_views_group_assignment_repos__group_assignment_repo_html_erb__1898958708462771443_70262520538040'
   /Users/cyhsutw/Projects/GSoC/classroom/app/views/group_assignments/show.html.erb:33:in `_app_views_group_assignments_show_html_erb__4258249158097083080_70262537730380'

 user: cyhsutw
 /classrooms/19820098-google-summer-of-code-2016/group-assignments/fun-with-swift-optionals
 N+1 Query detected
   RepoAccess => [:user]
   Add to your finder: :includes => [:user]
 N+1 Query method call stack
   /Users/cyhsutw/Projects/GSoC/classroom/app/views/group_assignment_repos/_group_assignment_repo.html.erb:9:in `block in _app_views_group_assignment_repos__group_assignment_repo_html_erb__1898958708462771443_70262520538040'
   /Users/cyhsutw/Projects/GSoC/classroom/app/views/group_assignment_repos/_group_assignment_repo.html.erb:8:in `_app_views_group_assignment_repos__group_assignment_repo_html_erb__1898958708462771443_70262520538040'
   /Users/cyhsutw/Projects/GSoC/classroom/app/views/group_assignments/show.html.erb:33:in `_app_views_group_assignments_show_html_erb__4258249158097083080_70262537730380'
   /Users/cyhsutw/Projects/GSoC/classroom/app/views/group_assignment_repos/_group_assignment_repo.html.erb:9:in `block in _app_views_group_assignment_repos__group_assignment_repo_html_erb__1898958708462771443_70262520538040'
   /Users/cyhsutw/Projects/GSoC/classroom/app/views/group_assignment_repos/_group_assignment_repo.html.erb:8:in `_app_views_group_assignment_repos__group_assignment_repo_html_erb__1898958708462771443_70262520538040'
   /Users/cyhsutw/Projects/GSoC/classroom/app/views/group_assignments/show.html.erb:33:in `_app_views_group_assignments_show_html_erb__4258249158097083080_70262537730380'

This pull request fixes the warnings mentioned above.

@tarebyte tarebyte merged commit c8e9ce2 into master Aug 19, 2016
@tarebyte tarebyte deleted the n-plus-one branch August 19, 2016 12:12
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants