Skip to content

Commit bf85f58

Browse files
committed
correct query but slow
1 parent f6b5d54 commit bf85f58

File tree

2 files changed

+30
-24
lines changed

2 files changed

+30
-24
lines changed

coderd/database/queries.sql.go

Lines changed: 15 additions & 12 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

coderd/database/queries/prebuilds.sql

Lines changed: 15 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ WITH
5959
latest_build.template_version_id,
6060
latest_build.template_version_preset_id,
6161
latest_build.job_id,
62-
latest_build.created_at
62+
workspaces.created_at
6363
FROM
6464
workspaces
6565
LEFT JOIN LATERAL (
@@ -81,6 +81,7 @@ WITH
8181
workspace_builds.workspace_id
8282
= workspaces.id
8383
ORDER BY
84+
workspace_builds.workspace_id,
8485
workspace_builds.build_number
8586
DESC
8687
LIMIT
@@ -96,32 +97,34 @@ WITH
9697
AND latest_build.job_status
9798
= 'succeeded'::provisioner_job_status
9899
),
99-
agent_readiness
100+
ready_agents
100101
AS (
101102
SELECT
102-
latest_prebuilds.workspace_id AS workspace_id,
103-
COALESCE(BOOL_AND(workspace_agents.lifecycle_state = 'ready'::workspace_agent_lifecycle_state), false)::boolean AS ready
103+
workspace_resources.job_id,
104+
BOOL_AND(workspace_agents.lifecycle_state = 'ready'::workspace_agent_lifecycle_state)::boolean AS ready
104105
FROM
105-
latest_prebuilds
106-
LEFT JOIN workspace_resources ON
107-
workspace_resources.job_id = latest_prebuilds.job_id
108-
LEFT JOIN workspace_agents ON
106+
workspace_resources
107+
JOIN workspace_agents ON
109108
workspace_agents.resource_id = workspace_resources.id
109+
WHERE
110+
workspace_agents.deleted = false
110111
GROUP BY
111-
latest_prebuilds.workspace_id
112+
workspace_resources.job_id
112113
)
113114
SELECT
114115
latest_prebuilds.workspace_id AS id,
115116
latest_prebuilds.name,
116117
latest_prebuilds.template_id,
117118
latest_prebuilds.template_version_id,
118119
latest_prebuilds.template_version_preset_id AS current_preset_id,
119-
agent_readiness.ready,
120+
COALESCE(ready_agents.ready, false)::boolean AS ready,
120121
latest_prebuilds.created_at
121122
FROM
122123
latest_prebuilds
123-
JOIN agent_readiness ON
124-
agent_readiness.workspace_id = latest_prebuilds.workspace_id
124+
LEFT JOIN ready_agents ON
125+
ready_agents.job_id = latest_prebuilds.job_id
126+
ORDER BY
127+
latest_prebuilds.workspace_id ASC
125128
;
126129

127130
-- name: CountInProgressPrebuilds :many

0 commit comments

Comments
 (0)