metrics: Optimize queries.
Avoid full Builds table scans. * src/cuirass/metrics.scm (db-average-build-start-time-per-eval, db-average-build-complete-time-per-eval, db-evaluation-completion-speed): Rewrite query to avoid full Builds table scans.
This commit is contained in:
parent
eb8d1b88ad
commit
4d7864c046
|
@ -103,8 +103,7 @@ SELECT 100 * CAST(SUM(status > 0) as float) / COUNT(*) FROM
|
||||||
SELECT AVG(B.starttime - E.evaltime) FROM
|
SELECT AVG(B.starttime - E.evaltime) FROM
|
||||||
(SELECT id, evaltime
|
(SELECT id, evaltime
|
||||||
FROM Evaluations WHERE id = " eval ") E
|
FROM Evaluations WHERE id = " eval ") E
|
||||||
LEFT JOIN
|
LEFT JOIN Builds as B
|
||||||
(SELECT id, evaluation, starttime FROM Builds) B
|
|
||||||
ON E.id = B.evaluation and B.starttime > 0
|
ON E.id = B.evaluation and B.starttime > 0
|
||||||
GROUP BY E.id;")))
|
GROUP BY E.id;")))
|
||||||
(and=> (expect-one-row rows) (cut vector-ref <> 0)))))
|
(and=> (expect-one-row rows) (cut vector-ref <> 0)))))
|
||||||
|
@ -116,8 +115,7 @@ GROUP BY E.id;")))
|
||||||
SELECT AVG(B.stoptime - E.evaltime) FROM
|
SELECT AVG(B.stoptime - E.evaltime) FROM
|
||||||
(SELECT id, evaltime
|
(SELECT id, evaltime
|
||||||
FROM Evaluations WHERE id = " eval ") E
|
FROM Evaluations WHERE id = " eval ") E
|
||||||
LEFT JOIN
|
LEFT JOIN Builds as B
|
||||||
(SELECT id, evaluation, stoptime FROM Builds) B
|
|
||||||
ON E.id = B.evaluation and B.stoptime > 0
|
ON E.id = B.evaluation and B.stoptime > 0
|
||||||
GROUP BY E.id;")))
|
GROUP BY E.id;")))
|
||||||
(and=> (expect-one-row rows) (cut vector-ref <> 0)))))
|
(and=> (expect-one-row rows) (cut vector-ref <> 0)))))
|
||||||
|
@ -142,8 +140,7 @@ SELECT
|
||||||
END - E.evaltime) FROM
|
END - E.evaltime) FROM
|
||||||
(SELECT id, evaltime
|
(SELECT id, evaltime
|
||||||
FROM Evaluations WHERE id = " eval ") E
|
FROM Evaluations WHERE id = " eval ") E
|
||||||
LEFT JOIN
|
LEFT JOIN Builds as B
|
||||||
(SELECT id, evaluation, status, stoptime FROM Builds) B
|
|
||||||
ON E.id = B.evaluation and B.stoptime > 0
|
ON E.id = B.evaluation and B.stoptime > 0
|
||||||
GROUP BY E.id;")))
|
GROUP BY E.id;")))
|
||||||
(and=> (expect-one-row rows) (cut vector-ref <> 0)))))
|
(and=> (expect-one-row rows) (cut vector-ref <> 0)))))
|
||||||
|
|
Loading…
Reference in New Issue