aboutsummaryrefslogtreecommitdiff
path: root/src/sql
diff options
context:
space:
mode:
authorMathieu Othacehe <othacehe@gnu.org>2020-09-28 17:47:19 +0200
committerMathieu Othacehe <othacehe@gnu.org>2020-09-28 17:49:55 +0200
commit0ffcb80ebbaa2b177f03548035a2ef21ae7ac41d (patch)
tree6f332be41005a9f8ac7b2a30e2401d5f54dc814b /src/sql
parent461e07e14e1c8013343c0a2cb26c0e022e10d5e4 (diff)
downloadcuirass-0ffcb80ebbaa2b177f03548035a2ef21ae7ac41d.tar
cuirass-0ffcb80ebbaa2b177f03548035a2ef21ae7ac41d.tar.gz
Optimize database queries.
Avoid full scans of Builds table that can be very time consuming by rewriting some queries and using new indexes. * src/sql/upgrade-12.sql: New file. * Makefile.am (dist_sql_DATA): Add it. * src/schema.sql (Builds_evaluation_index, Evaluations_status_index, Evaluations_specification_index): New indexes. * src/cuirass/database.scm (db-get-evaluations-build-summary, db-get-evaluation-summary): Rewrite queries to avoid full Builds table scan and use the new indexes.
Diffstat (limited to 'src/sql')
-rw-r--r--src/sql/upgrade-12.sql7
1 files changed, 7 insertions, 0 deletions
diff --git a/src/sql/upgrade-12.sql b/src/sql/upgrade-12.sql
new file mode 100644
index 0000000..06aaffe
--- /dev/null
+++ b/src/sql/upgrade-12.sql
@@ -0,0 +1,7 @@
+BEGIN TRANSACTION;
+
+CREATE INDEX Builds_evaluation_index ON Builds (evaluation, status);
+CREATE INDEX Evaluations_status_index ON Evaluations (id, status);
+CREATE INDEX Evaluations_specification_index ON Evaluations (specification, id DESC);
+
+COMMIT;