Skip to content

Reduce number of queries made by Projects::IssuesController#create_merge_request

Igor Frenkel requested to merge 20815-reduce-num-queries into master

What does this MR do?

This MR is a performance optimization for reducing the number of queries made by the controller.

For example when looking at SELECTs issued just by running a single test under the controller spec there 150 select queries made. When accounting for duplicates there are only 73 left. The idea is to optimize by checking for excessive duplicate calls and seeing whether these could be removed. See duplicate queries and unique queries.

The following optimizations have been done:

  • ProjectTeam: reduce number of calls by memoizing (15 -> 2)
  • License: pending
  • Projects: pending

Screenshots (strongly suggested)

Does this MR meet the acceptance criteria?

Conformity

Availability and Testing

Security

If this MR contains changes to processing or storing of credentials or tokens, authorization and authentication methods and other items described in the security review guidelines:

  • Label as security and @ mention @gitlab-com/gl-security/appsec
  • The MR includes necessary changes to maintain consistency between UI, API, email, or other methods
  • Security reports checked/validated by a reviewer from the AppSec team

Related to #20815 (closed)

Edited by Igor Frenkel

Merge request reports