Skip to content

Draft: Fix multiple N+1 issues for PipelineSerializer

Igor Drozdov requested to merge id-optimize-persistent-envs into master

What does this MR do?

We have multiple N+1s on https://gitlab.com/gitlab-org/gitlab/-/pipelines. This merge requests fixes the following ones (examples of repeated requests):

SELECT "ci_build_report_results".* FROM "ci_build_report_results" INNER JOIN "ci_builds" ON "ci_build_report_results"."build_id" = "ci_builds"."id" WHERE "ci_builds"."type" = 'Ci::Build' AND "ci_builds"."commit_id" = ... AND ("ci_builds"."retried" = FALSE OR "ci_builds"."retried" IS NULL)
SELECT "deployments".* FROM "deployments" WHERE "deployments"."deployable_id" = ... AND "deployments"."deployable_type" = 'CommitStatus' LIMIT 1
SELECT "environments".* FROM "environments" WHERE "environments"."name" = ... AND "environments"."project_id" = ... LIMIT 1
SELECT "environments".* FROM "environments" WHERE "environments"."id" = ... LIMIT 1
Edited by Igor Drozdov

Merge request reports