A "több millió" rekord az semmi, bocs.
Javaslom, hogy először is csináld meg a reportot generáló SQL-t úgy, hogy a live adatokból dolgozik (valami ilyet kérnek, nem?), tuningold kicsit, s nézd meg, mennyi idő alatt készül el.
Ha napi report, akkor még 5 percnyi futásidő is oké lehet, de ezt neked kell tudnod :-)
Jól megválaszott indexekkel és táblaszerkezettel több _milliárd_ soros táblákból joinolgatva, aggregálgatva is lehet 38 sec alatt reportot generálni. Szal mindent lehet.