Speed up a query for derivation builds
This change removes a sequential scan from the query plan, making it much faster.
This commit is contained in:
parent
6e0e33addf
commit
af40c1ac13
2 changed files with 13 additions and 14 deletions
|
|
@ -205,27 +205,24 @@ ORDER BY latest_build_status.timestamp DESC NULLS LAST, derivations.file_name
|
||||||
conn derivation-file-name)
|
conn derivation-file-name)
|
||||||
(define query
|
(define query
|
||||||
"
|
"
|
||||||
SELECT build_servers.id,
|
SELECT DISTINCT ON (builds.id)
|
||||||
|
builds.id,
|
||||||
|
build_servers.id,
|
||||||
build_servers.url,
|
build_servers.url,
|
||||||
builds.build_server_build_id,
|
builds.build_server_build_id,
|
||||||
latest_build_status.timestamp,
|
build_status.timestamp,
|
||||||
latest_build_status.status
|
build_status.status
|
||||||
FROM builds
|
FROM builds
|
||||||
INNER JOIN build_servers ON build_servers.id = builds.build_server_id
|
INNER JOIN build_servers ON build_servers.id = builds.build_server_id
|
||||||
INNER JOIN
|
INNER JOIN build_status
|
||||||
(
|
ON build_status.build_id = builds.id
|
||||||
SELECT DISTINCT ON (build_id) *
|
|
||||||
FROM build_status
|
|
||||||
ORDER BY build_id, id DESC
|
|
||||||
) AS latest_build_status
|
|
||||||
ON latest_build_status.build_id = builds.id
|
|
||||||
INNER JOIN derivations_by_output_details_set
|
INNER JOIN derivations_by_output_details_set
|
||||||
ON builds.derivation_output_details_set_id =
|
ON builds.derivation_output_details_set_id =
|
||||||
derivations_by_output_details_set.derivation_output_details_set_id
|
derivations_by_output_details_set.derivation_output_details_set_id
|
||||||
INNER JOIN derivations
|
INNER JOIN derivations
|
||||||
ON derivations.id = derivations_by_output_details_set.derivation_id
|
ON derivations.id = derivations_by_output_details_set.derivation_id
|
||||||
WHERE derivations.file_name = $1
|
WHERE derivations.file_name = $1
|
||||||
ORDER BY latest_build_status.timestamp DESC")
|
ORDER BY builds.id, build_status.timestamp DESC")
|
||||||
|
|
||||||
(exec-query conn query (list derivation-file-name)))
|
(exec-query conn query (list derivation-file-name)))
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -658,9 +658,11 @@ time."
|
||||||
,(build-status-span "")))
|
,(build-status-span "")))
|
||||||
(map
|
(map
|
||||||
(match-lambda
|
(match-lambda
|
||||||
((build-server-id build-server-url
|
((build-id build-server-id
|
||||||
build-server-build-id
|
build-server-url
|
||||||
timestamp status)
|
build-server-build-id
|
||||||
|
timestamp
|
||||||
|
status)
|
||||||
`(div
|
`(div
|
||||||
(@ (class "text-center"))
|
(@ (class "text-center"))
|
||||||
(div
|
(div
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue