mirror of
https://github.com/ClusterCockpit/cc-backend
synced 2026-03-10 18:17:30 +01:00
Optimize queries on footprint attributes
Entire-Checkpoint: 81bf5e62e311
This commit is contained in:
@@ -0,0 +1,15 @@
|
||||
-- Drop standalone expression indexes
|
||||
DROP INDEX IF EXISTS jobs_fp_flops_any_avg;
|
||||
DROP INDEX IF EXISTS jobs_fp_mem_bw_avg;
|
||||
DROP INDEX IF EXISTS jobs_fp_mem_used_max;
|
||||
DROP INDEX IF EXISTS jobs_fp_cpu_load_avg;
|
||||
DROP INDEX IF EXISTS jobs_fp_net_bw_avg;
|
||||
DROP INDEX IF EXISTS jobs_fp_net_data_vol_total;
|
||||
DROP INDEX IF EXISTS jobs_fp_file_bw_avg;
|
||||
DROP INDEX IF EXISTS jobs_fp_file_data_vol_total;
|
||||
|
||||
-- Drop composite indexes
|
||||
DROP INDEX IF EXISTS jobs_cluster_fp_cpu_load_avg;
|
||||
DROP INDEX IF EXISTS jobs_cluster_fp_flops_any_avg;
|
||||
DROP INDEX IF EXISTS jobs_cluster_fp_mem_bw_avg;
|
||||
DROP INDEX IF EXISTS jobs_cluster_fp_mem_used_max;
|
||||
@@ -0,0 +1,19 @@
|
||||
-- Expression indexes on footprint JSON fields for WHERE and ORDER BY optimization.
|
||||
-- SQLite matches expressions textually, so queries must use exactly:
|
||||
-- json_extract(footprint, '$.field')
|
||||
|
||||
-- Standalone expression indexes (for filtering and sorting)
|
||||
CREATE INDEX IF NOT EXISTS jobs_fp_flops_any_avg ON job (json_extract(footprint, '$.flops_any_avg'));
|
||||
CREATE INDEX IF NOT EXISTS jobs_fp_mem_bw_avg ON job (json_extract(footprint, '$.mem_bw_avg'));
|
||||
CREATE INDEX IF NOT EXISTS jobs_fp_mem_used_max ON job (json_extract(footprint, '$.mem_used_max'));
|
||||
CREATE INDEX IF NOT EXISTS jobs_fp_cpu_load_avg ON job (json_extract(footprint, '$.cpu_load_avg'));
|
||||
CREATE INDEX IF NOT EXISTS jobs_fp_net_bw_avg ON job (json_extract(footprint, '$.net_bw_avg'));
|
||||
CREATE INDEX IF NOT EXISTS jobs_fp_net_data_vol_total ON job (json_extract(footprint, '$.net_data_vol_total'));
|
||||
CREATE INDEX IF NOT EXISTS jobs_fp_file_bw_avg ON job (json_extract(footprint, '$.file_bw_avg'));
|
||||
CREATE INDEX IF NOT EXISTS jobs_fp_file_data_vol_total ON job (json_extract(footprint, '$.file_data_vol_total'));
|
||||
|
||||
-- Composite indexes with cluster (for common filter+sort combinations)
|
||||
CREATE INDEX IF NOT EXISTS jobs_cluster_fp_cpu_load_avg ON job (cluster, json_extract(footprint, '$.cpu_load_avg'));
|
||||
CREATE INDEX IF NOT EXISTS jobs_cluster_fp_flops_any_avg ON job (cluster, json_extract(footprint, '$.flops_any_avg'));
|
||||
CREATE INDEX IF NOT EXISTS jobs_cluster_fp_mem_bw_avg ON job (cluster, json_extract(footprint, '$.mem_bw_avg'));
|
||||
CREATE INDEX IF NOT EXISTS jobs_cluster_fp_mem_used_max ON job (cluster, json_extract(footprint, '$.mem_used_max'));
|
||||
Reference in New Issue
Block a user