-
Bug
-
Resolution: Fixed
-
Minor
-
2.1.2, 2.2
-
MySQL
-
MOODLE_21_STABLE, MOODLE_22_STABLE
-
MOODLE_21_STABLE
-
-
It seems the query for getting the data for 'mod/quiz/report.php?id=xxxx&mode=overview' page returns an overly large number of results.
The query can take minutes to execute, included below.
- Query_time: 70.228014 Lock_time: 0.000520 Rows_sent: 87 Rows_examined: 48814592
use moodle;
SET timestamp=1320323743;
SELECT
CONCAT(u.id, '#', COALESCE(quiza.attempt, 0)) AS uniqueid,
quiza.uniqueid AS usageid,
quiza.id AS attempt,
u.id AS userid,
u.idnumber,
u.firstname,
u.lastname,
u.picture,
u.imagealt,
u.institution,
u.department,
u.email,
quiza.sumgrades,
quiza.timefinish,
quiza.timestart,
CASE WHEN quiza.timefinish = 0 THEN null
WHEN quiza.timefinish > quiza.timestart THEN quiza.timefinish - quiza.timestart
ELSE 0 END AS duration, COALESCE((
SELECT MAX(qqr.regraded)
FROM mdl_quiz_overview_regrades qqr
WHERE qqr.questionusageid = quiza.uniqueid
), -1) AS regraded,
qa7.fraction * qa7.maxmark AS qsgrade7
FROM
mdl_user u
LEFT JOIN mdl_quiz_attempts quiza ON
quiza.userid = u.id AND quiza.quiz = '434'
LEFT JOIN (
SELECT
qa7qa.id AS questionattemptid,
qa7qa.questionusageid,
qa7qa.slot,
qa7qa.behaviour,
qa7qa.questionid,
qa7qa.variant,
qa7qa.maxmark,
qa7qa.minfraction,
qa7qa.flagged,
qa7qa.questionsummary,
qa7qa.rightanswer,
qa7qa.responsesummary,
qa7qa.timemodified,
qa7qas.id AS attemptstepid,
qa7qas.sequencenumber,
qa7qas.state,
qa7qas.fraction,
qa7qas.timecreated,
qa7qas.userid
FROM mdl_question_attempts qa7qa
JOIN mdl_question_attempt_steps qa7qas ON
qa7qas.id = (
SELECT MAX(id)
FROM mdl_question_attempt_steps
WHERE questionattemptid = qa7qa.id
)
) qa7 ON qa7.questionusageid = quiza.uniqueid AND qa7.slot = '7'
WHERE quiza.id IS NOT NULL AND quiza.preview = 0
ORDER BY qsgrade7 ASC, firstname ASC, quiza.id ASC LIMIT 0, 250;