MDL-64783 analytics: Performance improvements
- Removed redundant query to analytics_predict_samples - Analysers API now uses recordsets to iterate through the analysable elements. They take the last analysed time into account. - New method for targets so there is no need to always update the last analysis time. Useful for lightweight targets.
This commit is contained in:
committed by
Eloy Lafuente (stronk7)
parent
02dfbf44a7
commit
fccc728fcc
@@ -565,15 +565,19 @@ class manager {
|
||||
$models = self::get_all_models();
|
||||
foreach ($models as $model) {
|
||||
$analyser = $model->get_analyser(array('notimesplitting' => true));
|
||||
$analysables = $analyser->get_analysables();
|
||||
if (!$analysables) {
|
||||
$analysables = $analyser->get_analysables_iterator();
|
||||
|
||||
$analysableids = [];
|
||||
foreach ($analysables as $analysable) {
|
||||
if (!$analysable) {
|
||||
continue;
|
||||
}
|
||||
$analysableids[] = $analysable->get_id();
|
||||
}
|
||||
if (empty($analysableids)) {
|
||||
continue;
|
||||
}
|
||||
|
||||
$analysableids = array_map(function($analysable) {
|
||||
return $analysable->get_id();
|
||||
}, $analysables);
|
||||
|
||||
list($notinsql, $params) = $DB->get_in_or_equal($analysableids, SQL_PARAMS_NAMED, 'param', false);
|
||||
$params['modelid'] = $model->get_id();
|
||||
|
||||
|
||||
Reference in New Issue
Block a user