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

Domande sulle funzionalità di backend: amministrazione utenti e corsi, certificati, iscrizioni, report, ...
Post Reply
tricktrack
Newbie
Posts: 4
Joined: Fri Jan 22, 2016 10:43 am
Version: forma.lms 1.4.1

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

Post 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!
User avatar
max
FormaLms Guru
Posts: 2735
Joined: Thu Mar 01, 2012 10:41 am
Version: forma.lms 2.4
Contact:

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

Post 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.
---------------------
Massimiliano Ferrari
Elearnit - Elearning e Knowledge Management
https://www.elearnit.net
https://www.linkedin.com/in/massimilianoferrari
m.ferrari[at]elearnit.net
Skype: m_ferrari_it
andrea.festa
FormaLms User
Posts: 60
Joined: Wed Jan 30, 2013 9:43 am

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

Post 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?
User avatar
canelli
FormaLms Guru
Posts: 496
Joined: Thu Nov 08, 2012 12:21 pm
Version: forma.lms 2.0
Contact:

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

Post 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)
Cercate nel forum le riposte prima di chiedere. Check the forum before posting
---------------
Claudio Anelli
Joint Technologies - Sistemi avanzati per l'information technology

http://www.joint-tech.com
---------------
andrea.festa
FormaLms User
Posts: 60
Joined: Wed Jan 30, 2013 9:43 am

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

Post 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?
alfa24
Senior Boarder
Posts: 2009
Joined: Fri Nov 24, 2017 8:45 am

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

Post 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...
Per supporto GRATUITO contattatemi in privato qui
andrea.festa
FormaLms User
Posts: 60
Joined: Wed Jan 30, 2013 9:43 am

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

Post by andrea.festa »

Gli indici ci sono tutti.

Come si attiva il log delle slow query?
User avatar
canelli
FormaLms Guru
Posts: 496
Joined: Thu Nov 08, 2012 12:21 pm
Version: forma.lms 2.0
Contact:

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

Post by canelli »

Cercate nel forum le riposte prima di chiedere. Check the forum before posting
---------------
Claudio Anelli
Joint Technologies - Sistemi avanzati per l'information technology

http://www.joint-tech.com
---------------
andrea.festa
FormaLms User
Posts: 60
Joined: Wed Jan 30, 2013 9:43 am

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

Post 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
Post Reply