Performance degradation on Projects::EnvironmentsController#index.json
Summary
Projects::EnvironmentsController#index.json is slow due to divided SQL queries.
Steps to reproduce
GET https://gitlab.com/gitlab-org/gitlab/environments.json
.
as is
SELECT COUNT(*) FROM "environments" WHERE "environments"."project_id" = $1 AND ("environments"."state" IN ('stopped'))
SELECT COUNT(*) FROM "environments" WHERE "environments"."project_id" = $1 AND ("environments"."state" IN ('available'))
to be
SELECT COUNT("environments"."id") AS count_id, "environments"."state" AS environments_state FROM "environments" WHERE "environments"."project_id" = $1 GROUP BY "environments"."state"
Possible fixes
Sum up queries.
Edited by Takuya Noguchi