[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#43791: cuirass: Search queries are too slow.
From: |
Mathieu Othacehe |
Subject: |
bug#43791: cuirass: Search queries are too slow. |
Date: |
Sun, 04 Oct 2020 13:17:31 +0200 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/27.1 (gnu/linux) |
Hello,
Search queries can take a long time to complete.
This query took 658.67 seconds to complete:
--8<---------------cut here---------------start------------->8---
SELECT * FROM ( SELECT Builds.rowid, Builds.timestamp, Builds.starttime,
Builds.stoptime, Builds.log, Builds.status, Builds.job_name, Builds.system,
Builds.nix_name, Specifications.name FROM Builds INNER JOIN Evaluations ON
Builds.evaluation = Evaluations.id INNER JOIN Specifications ON
Evaluations.specification = Specifications.name WHERE (Builds.nix_name LIKE
'%hurd-barebones.qcow2%') AND (0 IS NULL OR (Builds.status = 0)) AND
('guix-master' IS NULL OR (Specifications.name = 'guix-master')) AND
('x86_64-linux' IS NULL OR (Builds.system = 'x86_64-linux')) AND (NULL IS NULL
OR (NULL < Builds.rowid)) AND (NULL IS NULL OR (NULL > Builds.rowid)) ORDER BY
CASE WHEN NULL IS NULL THEN Builds.rowid ELSE -Builds.rowid END DESC LIMIT 1)
ORDER BY rowid DESC 658.67
--8<---------------cut here---------------end--------------->8---
and this one:
--8<---------------cut here---------------start------------->8---
SELECT MIN(Builds.rowid) FROM Builds INNER JOIN Evaluations ON
Builds.evaluation = Evaluations.id INNER JOIN Specifications ON
Evaluations.specification = Specifications.name WHERE (Builds.nix_name LIKE
'%ganeti%') AND (NULL IS NULL OR (Builds.status = NULL)) AND (NULL IS NULL OR
(Specifications.name = NULL)) AND (NULL IS NULL OR (Builds.system = NULL))
146.70
--8<---------------cut here---------------end--------------->8---
took 146.70 seconds.
The naive solution of adding an index on nix_name column does not work
as it is still ignored for some reason.
According to https://www.sqlite.org/optoverview.html, starting the LIKE
search pattern with '%' prevent the index use.
However, searching for 'hurd-barebones.qcow2%' also skips the index.
Thanks,
Mathieu
- bug#43791: cuirass: Search queries are too slow.,
Mathieu Othacehe <=