diff options
author | Mathieu Othacehe <othacehe@gnu.org> | 2020-09-28 17:47:19 +0200 |
---|---|---|
committer | Mathieu Othacehe <othacehe@gnu.org> | 2020-09-28 17:49:55 +0200 |
commit | 0ffcb80ebbaa2b177f03548035a2ef21ae7ac41d (patch) | |
tree | 6f332be41005a9f8ac7b2a30e2401d5f54dc814b /src/sql | |
parent | 461e07e14e1c8013343c0a2cb26c0e022e10d5e4 (diff) | |
download | cuirass-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.sql | 7 |
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; |