Go to file
Jose M. Guisado 746166e4c2 #971 Remove sql bottleneck when removing software profiles
Several universities have reported that creating a software profile
hangs the machine running the ogServer for a while, sometimes up to
minutes.

Legacy SQL code is producing said bottleneck, responsible for pruning a
intermediate table between "perfilessoft" and "softwares". There is
redundant code, "perfilssoft" should be pruned first, speeding up the
later task of pruning the intermediate table "perfilessoft_softwares"

There is no need to execute:

DELETE FROM perfilessoft_softwares
WHERE idperfilsoft IN (
	SELECT idperfilsoft
	FROM perfilessoft
	WHERE idperfilsoft NOT IN (
		SELECT DISTINCT idperfilsoft
		from ordenadores_particiones)
		AND idperfilsoft NOT IN (
			SELECT DISTINCT idperfilsoft from imagenes))

When afterwards "perfilessoft" is going to be pruned and
"perfilessoft_softwares" pruned again:

DELETE FROM perfilessoft WHERE idperfilsoft NOT IN
                (SELECT DISTINCT idperfilsoft from ordenadores_particiones)
                AND  idperfilsoft NOT IN
                (SELECT DISTINCT idperfilsoft from imagenes)

DELETE FROM perfilessoft_softwares WHERE idperfilsoft NOT IN
                        (SELECT idperfilsoft from perfilessoft)

The two latter commands suffice.

This should not happen when using a relational database supporting
foreign keys and ON DELETE CASCADE, like innoDB, which will be adopted
soon.
2021-04-16 13:31:45 +02:00
cfg #915 refresh SQL schema 2021-02-09 13:16:53 +01:00
src #971 Remove sql bottleneck when removing software profiles 2021-04-16 13:31:45 +02:00
tests #915 Add GET /oglive/test REST API function 2021-04-05 18:00:56 +02:00
.gitignore #985 add .gitignore file 2020-06-17 18:20:32 +02:00
COPYING #985 add COPYING file 2020-06-18 16:48:20 +02:00
Makefile.am #971 split wake on lan code 2020-07-06 11:14:43 +02:00
configure.ac #986 rename to ogserver 2020-06-19 11:19:55 +02:00