Detta cosi', sembra che tu debba fare delle interrogazioni su un data warehouse.
Ricerce/classificazioni su un sacco di parametri, facendo la join su decine e decine di tabelle, e' prorio il tipo di lavoro che fa un DW.
E tali oggetti (i DW) sono stati pensati PROPRIO perche' un DB classico, in tale situazione, risulta mooolto lento: le join creano tabelle temporanee mastodontiche.
Probabilmente, quello che ti serve e' un OLAP: Online Analytics Processing.
Se stai usando un db serio (Oracle, SQL Server), questo ha un modulo dedicato per questo tipo di lavori.