Change query for fetching lsif job artifact
What does this MR do?
The query which has been introduced !23674 (merged) turned out to be ineffective. Let's replace it with 2 ones.
The old query:
SELECT ci_job_artifacts.* FROM ci_job_artifacts
INNER JOIN ci_builds ON ci_builds.id = ci_job_artifacts.job_id AND ci_builds.type = ‘Ci::Build’
INNER JOIN ci_pipelines ON ci_pipelines.id = ci_builds.commit_id
WHERE ci_job_artifacts.project_id = 2009901 AND ci_job_artifacts.file_type = 15 AND ci_pipelines.sha = ‘ e6ef7f8659a360bd912cf5ee4798b2bca52d31c2’
ORDER BY ci_job_artifacts.id DESC LIMIT 1
https://explain.depesz.com/s/7sCz
The new query:
SELECT ci_job_artifacts.* FROM ci_job_artifacts INNER JOIN ci_builds ON ci_builds.id = ci_job_artifacts.job_id AND ci_builds.type = ‘Ci::Build’ INNER JOIN ci_pipelines ON ci_pipelines.id = ci_builds.commit_id WHERE ci_pipelines.project_id=2009901 AND ci_job_artifacts.file_type = 15 AND ci_pipelines.sha = ‘e6ef7f8659a360bd912cf5ee4798b2bca52d31c2’ ORDER BY ci_job_artifacts.id DESC LIMIT 1
Edited by Yorick Peterse