Use partition filter for Ci::ArchiveTracesCronWorker queries
Ci::ArchiveTracesCronWorker
uses a couple of scopes on Ci::Build
to identify stale traces. This query searches through all the partitions of p_ci_builds
, but maybe we could rewrite to limit it only to the partitions from ci_build_trace_chunks
.
The query
SELECT *
FROM
p_ci_builds
WHERE
p_ci_builds.type = $1 AND
EXISTS (
SELECT
$2
FROM
ci_build_trace_chunks
WHERE
p_ci_builds.id = ci_build_trace_chunks.build_id
) AND
p_ci_builds.status IN ( $3, $4, $5 ) AND
finished_at < $6 AND
p_ci_builds.id > $7
ORDER BY
p_ci_builds.id ASC
LIMIT $8;