280: // Get all non-admin, non-guest, confirmed users.
281: $allusers = $DB->get_records_select('user',
282: "deleted = 0 AND suspended = 0 AND confirmed = 1 AND id > 2",
283: null, '', 'id');
285: $incomplete = 0;
286: foreach ($allusers as $user) {
287: if (is_siteadmin($user->id)) {
288: continue;
289: }
290: $fields = local_forceprofile_get_incomplete_fields($user->id, $shortnames, $patterns);
291: if (!empty($fields)) {
292: $incomplete++;
293: }
294: }
Hello,
Plugin contains nested database queries within loops, causing N+1 query problems that can severely impact performance on production sites with large datasets.
get_records_sql()with grouped queries andget_in_or_equal()where applicable.$DBper loop iteration.Documentation:
Code excerpts:
lib.php