From 23638c2c0835c0ff3cd9081d9967339751b211af Mon Sep 17 00:00:00 2001 From: Mathias Fredriksson Date: Thu, 4 Sep 2025 13:20:33 +0000 Subject: [PATCH 1/2] fix(coderd/database): optimize GetProvisionerDaemonsWithStatusByOrganization query via index Fixes coder/internal#724 --- ...etprovisionerdaemonswithstatusbyorganization_query.down.sql | 1 + ..._getprovisionerdaemonswithstatusbyorganization_query.up.sql | 3 +++ 2 files changed, 4 insertions(+) create mode 100644 coderd/database/migrations/000363_optimize_getprovisionerdaemonswithstatusbyorganization_query.down.sql create mode 100644 coderd/database/migrations/000363_optimize_getprovisionerdaemonswithstatusbyorganization_query.up.sql diff --git a/coderd/database/migrations/000363_optimize_getprovisionerdaemonswithstatusbyorganization_query.down.sql b/coderd/database/migrations/000363_optimize_getprovisionerdaemonswithstatusbyorganization_query.down.sql new file mode 100644 index 0000000000000..09adddd3ee0d4 --- /dev/null +++ b/coderd/database/migrations/000363_optimize_getprovisionerdaemonswithstatusbyorganization_query.down.sql @@ -0,0 +1 @@ +DROP INDEX provisioner_jobs_worker_id_organization_id_completed_at_idx; diff --git a/coderd/database/migrations/000363_optimize_getprovisionerdaemonswithstatusbyorganization_query.up.sql b/coderd/database/migrations/000363_optimize_getprovisionerdaemonswithstatusbyorganization_query.up.sql new file mode 100644 index 0000000000000..194dc3c858da7 --- /dev/null +++ b/coderd/database/migrations/000363_optimize_getprovisionerdaemonswithstatusbyorganization_query.up.sql @@ -0,0 +1,3 @@ +CREATE INDEX provisioner_jobs_worker_id_organization_id_completed_at_idx ON provisioner_jobs (worker_id, organization_id, completed_at DESC NULLS FIRST); + +COMMENT ON INDEX provisioner_jobs_worker_id_organization_id_completed_at_idx IS 'Support index for finding the latest completed jobs for a worker (and organization), nulls first so that active jobs have priority; targets: GetProvisionerDaemonsWithStatusByOrganization'; From cb29604a98192f4199d622af2f97939d2e77c295 Mon Sep 17 00:00:00 2001 From: Mathias Fredriksson Date: Thu, 4 Sep 2025 13:37:27 +0000 Subject: [PATCH 2/2] make gen --- coderd/database/dump.sql | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/coderd/database/dump.sql b/coderd/database/dump.sql index 273ef55b968ea..2f02aa2989a71 100644 --- a/coderd/database/dump.sql +++ b/coderd/database/dump.sql @@ -2947,6 +2947,10 @@ CREATE INDEX provisioner_job_logs_id_job_id_idx ON provisioner_job_logs USING bt CREATE INDEX provisioner_jobs_started_at_idx ON provisioner_jobs USING btree (started_at) WHERE (started_at IS NULL); +CREATE INDEX provisioner_jobs_worker_id_organization_id_completed_at_idx ON provisioner_jobs USING btree (worker_id, organization_id, completed_at DESC); + +COMMENT ON INDEX provisioner_jobs_worker_id_organization_id_completed_at_idx IS 'Support index for finding the latest completed jobs for a worker (and organization), nulls first so that active jobs have priority; targets: GetProvisionerDaemonsWithStatusByOrganization'; + CREATE UNIQUE INDEX provisioner_keys_organization_id_name_idx ON provisioner_keys USING btree (organization_id, lower((name)::text)); CREATE INDEX template_usage_stats_start_time_idx ON template_usage_stats USING btree (start_time DESC);