The Elearning Community • Iscrizione a corso - query su pop-up "conferma"
Page 1 of 1

Iscrizione a corso - query su pop-up "conferma"

Posted: Fri Jan 22, 2016 10:56 am
by tricktrack
Ciao a tutti, mi sono appena iscritta!
Prima di tutto complimenti per l'ottimo lovoro e l'ottimo forum.

Ho effettuato - in ambiente di test - un upgrade di una vecchia installazione di Docebo 4.0.5 a FormaLMS 1.4.1

Sembra funzionare tutto più o meno bene.
Ho notato però che quando un utente cerca di iscriversi ad un corso,
dopo aver cliccato sul pulsante "conferma" sul pop-up che si apre,
deve attendere un tempo lunghissimo prima di ritornare al catalogo corsi.

Ho verificato che sul database viene eseguita per il tutto il tempo di attesa la seguente query
(variano ogni volta i valori all'interno di IN () ):

Code: Select all

SELECT tgm.idstMember
FROM core_group_members AS tgm
LEFT JOIN core_user AS tu ON ( tgm.idstMember = tu.idst )
WHERE tgm.idst
IN ( 12785, 12784, 12787, 14385, 62737, 12786, 14384, 62736, 71054, 73602, 74543, 75358, 75590, 84041, 71053, 73601, 74542, 75357, 75589, 84040, 12886, 12885, 12888, 17364, 17366, 17368, 62739, 62741, 12887, 17363, 17365, 17367, 62738, 62740, 68714, 87024, 87026, 87028, 87030, 87032, 68713, 87023, 87025, 87027, 87029, 87031, 13107, 13106, 13109, 62743, 13108, 70287, 87042, 87044, 87046, 87048, 87050, 89708, 89960, 89962, 89964, 90229, 62742, 70286, 87041, 87043, 87045, 87047, 87049, 89707, 89959, 89961, 89963, 90228, 14130, 14129, 14132, 14131, 69933, 87034, 87036, 87038, 87040, 69932, 87033, 87035, 87037, 87039, 14394, 14393, 14396, 79472, 14395, 72407, 74151, 74751, 75545, 75598, 79471, 84049, 72406, 74150, 74750, 75544, 75597, 84048, 54390, 12298, 54389, 62735, 12297, 62734, 71648, 73903, 74657, 75456, 75594, 84043, 89113, 71647, 73902, 74656, 75455, 75593, 84042, 89112, 62755, 62754 )
AND tgm.filter = ''
AND NOT ISNULL( tu.idst )
AND tu.valid = '1'
Di che si tratta?
C'è un modo per ottimizzarla?
Sulla vecchia installazione di Docebo, invece, funziona tutto correttamente.

Grazie fin da ora a chi potrà aiutarmi!

Re: Iscrizione a corso - query su pop-up "conferma"

Posted: Fri Jan 22, 2016 11:05 am
by max
Ciao, grazie dei complimenti e benvenuta!

Su installazioni "pulite" non riscontriamo lo stesso comportamento: la conferma va immediatamente a buon fine. Vediamo se qualche collega sviluppatore riesce a darti un riscontro su questo tema.

Re: Iscrizione a corso - query su pop-up "conferma"

Posted: Wed Sep 26, 2018 10:44 am
by andrea.festa
Anch'io sto avendo lo stesso problema (aggiornamento da docevo a forma 1.4.3):
dopo il pop-up conferma viene richiamata la stessa query che va in esecuzione più volte.
Qualcuno ha risolto?

Re: Iscrizione a corso - query su pop-up "conferma"

Posted: Wed Sep 26, 2018 11:15 am
by canelli
la query è corretta ...

i tempi di attesa, probabilmente dipendono da:
numero di utenti , corsi , organigramma, iscritti ai corsi

è possiible che nel database migrato manchi qualche indice sulle tabelle (probabilmente perchè mancavano nel db di origine)

Re: Iscrizione a corso - query su pop-up "conferma"

Posted: Wed Sep 26, 2018 11:28 am
by andrea.festa
canelli wrote: Wed Sep 26, 2018 11:15 am la query è corretta ...
[...]
è possiible che nel database migrato manchi qualche indice sulle tabelle (probabilmente perchè mancavano nel db di origine)
Posso aggiungere gli indici a mano?
Quali?

Re: Iscrizione a corso - query su pop-up "conferma"

Posted: Wed Sep 26, 2018 1:38 pm
by alfa24
Gli indici di quelle due tabelle sono:

per core_group_members:

PRIMARY KEY (`idst`,`idstMember`),
KEY `idstMember` (`idstMember`)

per core_user:

PRIMARY KEY (`idst`),
UNIQUE KEY `userid` (`userid`),
UNIQUE KEY `facebook_id` (`facebook_id`),
UNIQUE KEY `twitter_id` (`twitter_id`),
UNIQUE KEY `linkedin_id` (`linkedin_id`),
UNIQUE KEY `google_id` (`google_id`),
UNIQUE KEY `facebook_id_2` (`facebook_id`),
UNIQUE KEY `google_id_2` (`google_id`),
UNIQUE KEY `twitter_id_2` (`twitter_id`),
UNIQUE KEY `linkedin_id_2` (`linkedin_id`)

quelli che interessano la query indicata sono solo i PRIMARY, che erano uguali fin da docebo 3.0.6.5... quindi il problema sta da qualche altra parte, probabilmente nella tua installazione.
Tra l'altro, la query non va in loop.
Se hai accesso root al server, puoi attivare il log delle slow query...

Re: Iscrizione a corso - query su pop-up "conferma"

Posted: Wed Sep 26, 2018 2:14 pm
by andrea.festa
Gli indici ci sono tutti.

Come si attiva il log delle slow query?

Re: Iscrizione a corso - query su pop-up "conferma"

Posted: Wed Sep 26, 2018 2:27 pm
by canelli

Re: Iscrizione a corso - query su pop-up "conferma"

Posted: Wed Sep 26, 2018 3:20 pm
by andrea.festa
Si. avevo già cercato, sono stato troppo sintetico prima...

Riepilogando.

Se inserisco in my.cnf le seguenti due righe:

long_query_time=1
log-slow-queries=/var/log/mysql/log-slow-queries.log

nel log ottengo solo le seguenti info:

/usr/libexec/mysqld, Version: 5.0.77-log (Source distribution). started with:
Tcp port: 0 Unix socket: /var/lib/mysql/mysql.sock
Time Id Command Argument

già all'vvio di mysqld-----------
Eseguendo la query su FormaLMS nessuna altra riga viene aggiunta al log.

Se inserisco l'altro esempio in my.cnf:

slow_query_log = 1
slow_query_log_file = /var/log/mysql/log-slow-queries.log
long_query_time = 10
log_queries_not_using_indexes = 1

mysql non riparte più... boh