Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit9131d78

Browse files
committed
chore(coderd/database): optimize GetRunningPrebuiltWorkspaces
1 parent02d1576 commit9131d78

File tree

2 files changed

+104
-22
lines changed

2 files changed

+104
-22
lines changed

‎coderd/database/queries.sql.go‎

Lines changed: 52 additions & 11 deletions
Some generated files are not rendered by default. Learn more aboutcustomizing how changed files appear on GitHub.

‎coderd/database/queries/prebuilds.sql‎

Lines changed: 52 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -49,18 +49,59 @@ WHERE tvp.desired_instances IS NOT NULL -- Consider only presets that have a pre
4949
AND (t.id=sqlc.narg('template_id')::uuidORsqlc.narg('template_id') ISNULL);
5050

5151
-- name: GetRunningPrebuiltWorkspaces :many
52+
WITH latest_prebuildsAS (
53+
SELECT
54+
latest_build.workspace_id,
55+
workspaces.name,
56+
workspaces.template_id,
57+
latest_build.template_version_id,
58+
latest_build.template_version_preset_id,
59+
latest_build.job_id,
60+
workspaces.created_at
61+
FROM workspaces
62+
JOIN LATERAL (
63+
SELECT
64+
workspace_builds.id,
65+
workspace_builds.workspace_id,
66+
workspace_builds.template_version_id,
67+
workspace_builds.job_id,
68+
workspace_builds.template_version_preset_id,
69+
workspace_builds.transition,
70+
workspace_builds.created_at,
71+
provisioner_jobs.job_status
72+
FROM workspace_builds
73+
JOIN provisioner_jobsONprovisioner_jobs.id=workspace_builds.job_id
74+
WHEREworkspace_builds.workspace_id=workspaces.id
75+
ANDworkspace_builds.transition='start'::workspace_transition
76+
ANDprovisioner_jobs.job_status='succeeded'::provisioner_job_status
77+
ORDER BYworkspace_builds.build_numberDESC
78+
LIMIT1
79+
)AS latest_buildON true
80+
WHEREworkspaces.deleted= false
81+
ANDworkspaces.owner_id='c42fdf75-3097-471c-8c33-fb52454d81c0'::UUID
82+
),
83+
ready_agentsAS (
84+
SELECT
85+
latest_prebuilds.job_id,
86+
BOOL_AND(workspace_agents.lifecycle_state='ready'::workspace_agent_lifecycle_state)::booleanAS ready
87+
FROM latest_prebuilds
88+
JOIN workspace_resourcesONworkspace_resources.job_id=latest_prebuilds.job_id
89+
JOIN workspace_agentsONworkspace_agents.resource_id=workspace_resources.id
90+
WHEREworkspace_agents.deleted= false
91+
ANDworkspace_agents.parent_id ISNULL
92+
GROUP BYlatest_prebuilds.job_id
93+
)
5294
SELECT
53-
p.id,
54-
p.name,
55-
p.template_id,
56-
b.template_version_id,
57-
p.current_preset_idAS current_preset_id,
58-
p.ready,
59-
p.created_at
60-
FROM workspace_prebuilds p
61-
INNER JOIN workspace_latest_builds bONb.workspace_id=p.id
62-
WHERE (b.transition='start'::workspace_transition
63-
ANDb.job_status='succeeded'::provisioner_job_status);
95+
latest_prebuilds.workspace_idAS id,
96+
latest_prebuilds.name,
97+
latest_prebuilds.template_id,
98+
latest_prebuilds.template_version_id,
99+
latest_prebuilds.template_version_preset_idAS current_preset_id,
100+
COALESCE(ready_agents.ready, false)::booleanAS ready,
101+
latest_prebuilds.created_at
102+
FROM latest_prebuilds
103+
LEFT JOIN ready_agentsONready_agents.job_id=latest_prebuilds.job_id
104+
ORDER BYlatest_prebuilds.workspace_idASC;
64105

65106
-- name: CountInProgressPrebuilds :many
66107
-- CountInProgressPrebuilds returns the number of in-progress prebuilds, grouped by preset ID and transition.

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp