diff options
author | Stan Hu <stanhu@gmail.com> | 2018-10-30 16:41:49 -0700 |
---|---|---|
committer | Stan Hu <stanhu@gmail.com> | 2018-10-30 22:29:57 -0700 |
commit | d4ef4ad752bf05758351bd0b8761566e40ab0e8e (patch) | |
tree | 8d8e3f67a217ad5b7d2dac4b0adb3f16d43f433e /app | |
parent | 571e651b21c7a618b8686a4b3f8a8c09c87a37f5 (diff) | |
download | gitlab-ce-d4ef4ad752bf05758351bd0b8761566e40ab0e8e.tar.gz |
Reduce SQL queries needed to load open merge requestssh-optimize-merge-request-project-lookup
The SQL queries and memory allocation in MergeRequests::RefreshService
is dominated by queries for Project and Route loads. On staging, the
absence of an inverse relationship caused Rails to make over 1100
extraneous SQL queries for the www-gitlab-com repository.
Relates to https://gitlab.com/gitlab-org/gitlab-ce/issues/49703
Diffstat (limited to 'app')
-rw-r--r-- | app/models/project.rb | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/app/models/project.rb b/app/models/project.rb index d593cbb223a..106cb92e0cc 100644 --- a/app/models/project.rb +++ b/app/models/project.rb @@ -181,7 +181,7 @@ class Project < ActiveRecord::Base has_one :import_export_upload, dependent: :destroy # rubocop:disable Cop/ActiveRecordDependent # Merge Requests for target project should be removed with it - has_many :merge_requests, foreign_key: 'target_project_id' + has_many :merge_requests, foreign_key: 'target_project_id', inverse_of: :target_project has_many :source_of_merge_requests, foreign_key: 'source_project_id', class_name: 'MergeRequest' has_many :issues has_many :labels, class_name: 'ProjectLabel' |