Depois de algumas horas seguintes, encontrei o problema. O tamanho de busca padrão do OJDBC é 10, portanto, com o aumento do número de linhas para buscar, o tempo aumenta muito rapidamente.
O que é estranho:essa foi minha primeira ideia, então tentei definir
<property name="eclipselink.jdbc.fetch-size" value="100"/> em persistence.xml . Não funcionou, então pulei para outras soluções. Hoje eu configurei em uma única consulta por query.setHint("eclipselink.jdbc.fetch-size", 100) e funciona.