В целом, если база данных хорошо оптимизирована (правильно проиндексирована и поддерживается), самые большие накладные расходы у вас возникают при создании соединения.
Будет лучше создать один большой запрос и инициировать одно соединение, чем создавать 30 небольших запросов и инициировать 30 соединений.
Если вы посмотрите в будущее, у вас может получиться цикл из сотен или тысяч. У вас также может быть намного больше пользователей, вызывающих эту функцию, поэтому вы можете подумать о масштабировании сейчас.
Подводя итог: создайте запрос и выполните его один раз после завершения цикла.