Como lidar com um relatório "super grande" no JasperReports?

Pessoal,

Tenho uma situação que pode ser que o usuário faça uma requisição a um relatório que retorna uma query muito longa, com 300 ou 400 páginas.

Atualmente isso tá derrubando o nosso servidor (JBoss com 1GB de memória), alguém tem alguma abordagem para contornar esse problema?

A aplicação usa JSF/Primefaces/EJB/Hibernate/JPA com o banco MySQL.