diff --git a/.server-changes/drop-taskrun-status-composite-idx.md b/.server-changes/drop-taskrun-status-composite-idx.md new file mode 100644 index 0000000000..cf06ed9df1 --- /dev/null +++ b/.server-changes/drop-taskrun-status-composite-idx.md @@ -0,0 +1,6 @@ +--- +area: webapp +type: improvement +--- + +Reduce primary database write load on `TaskRun` by dropping an unused composite index on `(status, runtimeEnvironmentId, createdAt, id)`. After gating the legacy `WAITING_FOR_DEPLOY` drain to V1-engine workers only, no V2 Prisma query uses this index while it was still being maintained on every `TaskRun` INSERT/UPDATE. diff --git a/internal-packages/database/prisma/migrations/20260525083555_drop_task_run_status_runtime_environment_id_created_at_id_idx/migration.sql b/internal-packages/database/prisma/migrations/20260525083555_drop_task_run_status_runtime_environment_id_created_at_id_idx/migration.sql new file mode 100644 index 0000000000..b078467fad --- /dev/null +++ b/internal-packages/database/prisma/migrations/20260525083555_drop_task_run_status_runtime_environment_id_created_at_id_idx/migration.sql @@ -0,0 +1,2 @@ +-- DropIndex +DROP INDEX CONCURRENTLY IF EXISTS "public"."TaskRun_status_runtimeEnvironmentId_createdAt_id_idx"; diff --git a/internal-packages/database/prisma/schema.prisma b/internal-packages/database/prisma/schema.prisma index 75f22e6d9a..91a4d34bcf 100644 --- a/internal-packages/database/prisma/schema.prisma +++ b/internal-packages/database/prisma/schema.prisma @@ -1089,7 +1089,6 @@ model TaskRun { @@index([runtimeEnvironmentId, batchId]) @@index([runtimeEnvironmentId, createdAt(sort: Desc)]) @@index([createdAt], type: Brin) - @@index([status, runtimeEnvironmentId, createdAt, id(sort: Desc)]) } model TaskRunTemplate {