hi everyone,
I want to comment a problem that appeared to me in the new Moodle 2.8 version, whenever teachers enter to the report "grade history", my database's server CPU goes to 100% usage, the query that is running is:
MySQL mdl_grade_grades_history select
SELECT ggh.id, ggh.timemodified, ggh.itemid, ggh.userid, ggh.finalgrade, ggh.usermodified, ggh.source, ggh.overridden, ggh.locked, ggh.excluded, ggh.feedback, ggh.feedbackformat, gi.itemtype, gi.itemmodule, gi.iteminstance, gi.itemnumber, u.idnumber, u.email, u.firstnamephonetic,u.lastnamephonetic,u.middlename,u.alternatename,u.firstname,u.lastname, ug.firstnamephonetic AS graderfirstnamephonetic,ug.lastnamephonetic AS graderlastnamephonetic,ug.middlename...More...
SELECT ggh.id, ggh.timemodified, ggh.itemid, ggh.userid, ggh.finalgrade, ggh.usermodified, ggh.source, ggh.overridden, ggh.locked, ggh.excluded, ggh.feedback, ggh.feedbackformat, gi.itemtype, gi.itemmodule, gi.iteminstance, gi.itemnumber, u.idnumber, u.email, u.firstnamephonetic,u.lastnamephonetic,u.middlename,u.alternatename,u.firstname,u.lastname, ug.firstnamephonetic AS graderfirstnamephonetic,ug.lastnamephonetic AS graderlastnamephonetic,ug.middlename AS gradermiddlename,ug.alternatename AS graderalternatename,ug.firstname AS graderfirstname,ug.lastname AS graderlastname, (SELECT MAX(finalgrade) FROM mdl_grade_grades_history h WHERE h.itemid = ggh.itemid AND h.userid = ggh.userid AND h.timemodified < ggh.timemodified AND NOT EXISTS ( SELECT ? FROM mdl_grade_grades_history h? WHERE h?.itemid = ggh.itemid AND h?.userid = ggh.userid AND h?.timemodified < ggh.timemodified AND h.timemodified < h?.timemodified)) AS prevgrade, CASE WHEN gi.itemname IS NULL THEN gi.itemtype ELSE gi.itemname END AS itemname FROM mdl_grade_grades_history ggh LEFT JOIN mdl_grade_items gi ON gi.id = ggh.itemid JOIN mdl_user u ON u.id = ggh.userid LEFT JOIN mdl_user ug ON ug.id = ggh.usermodified WHERE gi.courseid = ? ORDER BY timemodified DESC, id DESC LIMIT ?, ?