Isso dependerá muito do quanto é oneroso buscar os valores no banco de dados versus armazenar estes novamente na memória ou num arquivo temporário e o quê você vai querer otimizar (memória ou velocidade), e até que ponto você vai querer otimizar...
Se você conseguir armazenar os valores temporariamente na memória, a navegação, cálculos, compilação e etc serão muito mais rápidos. Contudo o consumo de memória pode ser insustentável se no período selecionado o número de registros for enorme.
O consumo de memória ao fazer a busca no banco de dados talvez seja menor. E se estiver buscando os dados num servidor, ele provavelmente estará preparado para isso. Mas pode ter o problema de ser mais lento pois terá que ler novamente os dados do disco, e leitura do disco é muito lenta. Contrabalançando isso, bancos de dados atuais podem implementar um cache para as últimas consultas tornando uma busca sucessiva pelos mesmos registros mais rápida. Isso é o caso do Firebird por exemplo. Mas o cache tem um limite...