diff --git a/internal/repository/migrations/sqlite3/12_stats-covering-index.up.sql b/internal/repository/migrations/sqlite3/12_stats-covering-index.up.sql index e1da64e1..2ddc8ffe 100644 --- a/internal/repository/migrations/sqlite3/12_stats-covering-index.up.sql +++ b/internal/repository/migrations/sqlite3/12_stats-covering-index.up.sql @@ -2,9 +2,10 @@ -- Column order: cluster (equality), hpc_user (GROUP BY), start_time (range scan) -- Includes aggregated columns to avoid main table lookups entirely. -DROP INDEX IF EXISTS jobs_cluster_starttime_user_stats; - CREATE INDEX IF NOT EXISTS jobs_cluster_user_starttime_stats ON job (cluster, hpc_user, start_time, duration, job_state, num_nodes, num_hwthreads, num_acc); +CREATE INDEX IF NOT EXISTS jobs_cluster_project_starttime_stats + ON job (cluster, project, start_time, duration, job_state, num_nodes, num_hwthreads, num_acc); + PRAGMA optimize; diff --git a/internal/repository/stats.go b/internal/repository/stats.go index 150fe5ed..8311e797 100644 --- a/internal/repository/stats.go +++ b/internal/repository/stats.go @@ -238,7 +238,6 @@ func (r *JobRepository) JobsStatsGrouped( groupBy *model.Aggregate, reqFields map[string]bool, ) ([]*model.JobsStatistics, error) { - start := time.Now() col := groupBy2column[*groupBy] query := r.buildStatsQuery(filter, col, config.Keys.ShortRunningJobsDuration, reqFields) @@ -325,7 +324,6 @@ func (r *JobRepository) JobsStatsGrouped( } } - cclog.Debugf("Timer JobsStatsGrouped %s", time.Since(start)) return stats, nil }