Improve environments queries for performance
What does this MR do?
Improves Projects::EnvironmentsController#index.json performance with reducing SQL queries.
current queries:
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'))
proposed query:
SELECT COUNT("environments"."id") AS count_id, "environments"."state" AS environments_state FROM "environments" WHERE "environments"."project_id" = $1 GROUP BY "environments"."state"
What are the relevant issue numbers?
Closes #58660 (moved)
Does this MR meet the acceptance criteria?
-
Changelog entry added, if necessary - [n/a] Documentation created/updated via this MR
- [n/a] Documentation reviewed by technical writer or follow-up review issue created
-
Tests added for this feature/bug -
Tested in all supported browsers -
Conforms to the code review guidelines -
Conforms to the merge request performance guidelines -
Conforms to the style guides -
Conforms to the database guides -
Link to e2e tests MR added if this MR has Requires e2e tests label. See the Test Planning Process. - [n/a] Security reports checked/validated by reviewer
Edited by Takuya Noguchi