Это невозможно при использовании спящего или обычного нативного запроса, поскольку он должен создавать сотни тысяч объектов на стороне Java, а результаты должны отправляться по сети (сериализация и десериализация).
Вы можете сделать следующие шаги для тонкой настройки,
- На стороне БД вы можете изменить метод индекса, по умолчанию используется дерево Binery, вместо этого установите его как метод "HASH".
- Использование параллельных потоков для получения результатов в режиме разбивки на страницы (Использовать собственный SQL).
Надеюсь, он даст некоторые входные данные для дальнейшей подстройки.