bug-guix
[Top][All Lists]
Advanced

[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





reply via email to

[Prev in Thread] Current Thread [Next in Thread]