MDL-64782 core_enrol: Performance improvement

This commit is contained in:
Shamim Rezaie 2019-02-26 13:43:36 +11:00
parent 7a2e7b29a0
commit 1916f2be8f

View File

@ -194,12 +194,9 @@ class provider implements
if ($context->contextlevel == CONTEXT_COURSE) {
$sql = "SELECT ue.id
FROM {user_enrolments} ue
JOIN {enrol} e
ON e.id = ue.enrolid
JOIN {context} ctx
ON ctx.instanceid = e.courseid
WHERE ctx.id = :contextid";
$params = ['contextid' => $context->id];
JOIN {enrol} e ON e.id = ue.enrolid
WHERE e.courseid = :courseid";
$params = ['courseid' => $context->instanceid];
$enrolsids = $DB->get_fieldset_sql($sql, $params);
if (!empty($enrolsids)) {
list($insql, $inparams) = $DB->get_in_or_equal($enrolsids, SQL_PARAMS_NAMED);
@ -223,14 +220,11 @@ class provider implements
$sql = "SELECT ue.id
FROM {user_enrolments} ue
JOIN {enrol} e
ON e.id = ue.enrolid
JOIN {context} ctx
ON ctx.instanceid = e.courseid
WHERE ctx.id = :contextid
AND ue.userid {$usersql}";
JOIN {enrol} e ON e.id = ue.enrolid
WHERE e.courseid = :courseid
AND ue.userid {$usersql}";
$params = ['contextid' => $context->id] + $userparams;
$params = ['courseid' => $context->instanceid] + $userparams;
$enrolsids = $DB->get_fieldset_sql($sql, $params);
if (!empty($enrolsids)) {