В качестве обходного пути - эта 1000 отчетов выглядит для телепата как один и тот же отчет для 1000 пользователей с незначительными отличиями в фильтрах. Почему бы не провести тестирование на разбиение этого на два этапа: 1. получение всех данных из БД и сервисов для всех пользователей; 2. генерация из этих данных 1000 отчетов путем фильтрации в памяти.
Выглядит как задача для OLAP или его заменителя на самом деле. Типа подготавливаем в отдельном кубе (ну или таблице) данные для отчета в фоне, а в нужный момент просто выплевываем по простейшему фильтру и агрегатам. Т.е. первый этап из предыдущего абзаца делать заранее в фоне по расписанию (например за пару часов до часа Х или вообще каждый час только по обновленным данным), а на втором просто простейшее получение данных, которое не занимает много времени.