Cara, normalmente vc usa dados históricos de diversos anos - não tenho como dizer se dá pra carregar tudo em memória sem pensar em quantidade e muito menos sem ter noção do seu modelo.
Te adianto que se sua origem de dados for uma base OLAP (um cubo, datawarehouse, datamining, etc) não dá. Esse tipo de otimização que vc está falando é o maior problema em BI. Normalmente a galera modela a tralha toda e só se preocupa em performance no final. Essa abordagem é muito boa pra desenvolvimento de aplicações - não é boa pra BI. Em BI vc deve sim, se preocupar com performance desde o início mas isso fica muito amarrado ao número de versões e dimensões que vc possa vir a ter no seu modelo. De quê adianta um relatório de risco de venda que demora 3 dias pra rodar??? Seu clientes não vão querer esperar, com esse footprint é mais fácil ir pro mercado e consultar especialistas … (fora que quanto maior o tempo de processamente maior são as chances de algo dar errado em meio ao processameto).
Claro que se vc está desenvolvendo uma aplicação isso se torna mais simples, o código é seu, o modelo é seu, está tudo (teoricamente) sob seu controle.
Como otimizar??? Isso tá mais pro lado de banco do quê pra BI em SI. Sua preocupação deve ser com o modelo e ter certeza de que está trabalhando com limites aceitáveis. Só pra simplificar: Se vc está trabalhando num nível de detalhe muito baixo (operacional, no nível de uma nota fiscal - por exemplo) vc terá problemas de performance devido ao volume de informações com as quais vc está trabalhando. Não tem Cristo que resolva isso - isso é um erro comum de modelagem.
A oracle tem cursos muito boms sobre o assunto e um produto (Oracle Discover) muito bacana. Vale a pena baixar e estudar o material que o acompanha. Esse assunto é muito extenso pra um fórum e dá muito pano pra manga.
Woody