From 71bf5c122d7f82cae59562ee3ac014aa3c3b1be7 Mon Sep 17 00:00:00 2001 From: Stan Hu Date: Fri, 24 Feb 2017 11:14:07 -0800 Subject: Fix performance regression loading events in authorized projects !9088 removed the ActiveRecord instantiation, but it caused a subquery to be used that made PostgreSQL do more work than necessary to find events for authorized projects. Closes #27267 --- app/models/event.rb | 2 +- changelogs/unreleased/sh-fix-events-load-perf-issue.yml | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) create mode 100644 changelogs/unreleased/sh-fix-events-load-perf-issue.yml diff --git a/app/models/event.rb b/app/models/event.rb index 4b8eac9accf..d7ca8e3c599 100644 --- a/app/models/event.rb +++ b/app/models/event.rb @@ -36,7 +36,7 @@ class Event < ActiveRecord::Base scope :code_push, -> { where(action: PUSHED) } scope :in_projects, ->(projects) do - where(project_id: projects).recent + where(project_id: projects.pluck(:id)).recent end scope :with_associations, -> { includes(:author, :project, project: :namespace).preload(:target) } diff --git a/changelogs/unreleased/sh-fix-events-load-perf-issue.yml b/changelogs/unreleased/sh-fix-events-load-perf-issue.yml new file mode 100644 index 00000000000..7c1a5c6f916 --- /dev/null +++ b/changelogs/unreleased/sh-fix-events-load-perf-issue.yml @@ -0,0 +1,4 @@ +--- +title: Fix performance regression loading events in authorized projects +merge_request: +author: -- cgit v1.2.1