Improve performance of API query to "get count of recently created merge requests for group"

Everyone can contribute. Help move this issue forward while earning points, leveling up and collecting rewards.

Problem

The query to get count of recently created merge requests for group is non-performant (too slow).

Proposal

SQL Statement

SQL statement ```sql SELECT COUNT(*) FROM "merge_requests" INNER JOIN "projects" ON "projects"."id" = "merge_requests"."target_project_id" LEFT JOIN project_features ON projects.id = project_features.project_id WHERE (EXISTS (SELECT $1 FROM "project_authorizations" WHERE "project_authorizations"."user_id" = $2 AND (project_authorizations.project_id = projects.id) AND (project_authorizations.access_level >= $3)) OR projects.visibility_level IN ($4,$5)) AND ("project_features"."merge_requests_access_level" IS NULL OR "project_features"."merge_requests_access_level" IN ($6,$7) OR ("project_features"."merge_requests_access_level" = $8 AND EXISTS (SELECT $9 FROM "project_authorizations" WHERE "project_authorizations"."user_id" = $10 AND (project_authorizations.project_id = projects.id) AND (project_authorizations.access_level >= $11)))) AND ("merge_requests"."state_id" IN ($12)) AND... ```

(Full SQL unavailable as I do not have blessed access to postgres.ai)

Data from Elastic

https://log.gprd.gitlab.net/app/discover#/?_g=h@82bf1c3&_a=h@4931bbc

Requested Data points

image

Kibana

Edited by 🤖 GitLab Bot 🤖