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); 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';