Melhor estratégia para fazer pre-load de dados fixos do banco num ambiente web

4 respostas
bigjoe

saudações!

Queria fazer uma melhoria no sistema em que estou trabalhando para acelerar a velocidade de resposta do mesmo para o usuário.

Eu tenho algumas tabelas bem grandes no banco de dados, que constantemente preciso acessar para mostrar na tela, algumas vezes de forma encadeada (uma combo determina o conteúdo da outra).

Acontece que essas tabelas mudam muito pouco, se é que mudam.

Como exemplo, suponhamos uma tabela de munícipios, com 5000 registros. Vão ter situações em que o usuário irá procurar registros nessa tabela num formulário de consulta. Em outras, ele vai ter uma combo para escolher a UF. Assim que ele escolhe a UF, a combo de municípios que pertençam àquela UF.

Hoje em dia, o sistema faria queries no banco para recuperar os dados. A cada busca ou troca da combo de uf, uma query no banco seria feita.

A minha idéia é que o sistema faça essa carga de dados uma única vez, armazene de alguma forma, e cada vez que o sistema tiver que acessar esses dados iria usar os dados armazenados, sem ir ao banco.

Já implementei isso uma vez em outro projeto: existia uma collection estática que era carregada quando o primeiro usuário acessava o sistema.

Os colegas têm sugestões de melhores formas de implementar uma estratégia de pré-carga de dados? No meu sistema, há várias tabelas que poderiam ser armazenadas.

No momento, não estou preocupado com o efeito de alterações no banco e atualização dos dados armazenados.

Um grande abraço,
obrigado,

Big Joe!

4 Respostas

bombbr

Utilize cache na camada de persistência de sua aplicação.

Frameworks de persistências como Hibernate e ibatis oferecem estes recursos, fornecendo várias estratégias de cache.

bigjoe

Olá, obrigado por sua resposta!

As nossas soluções atuais são com hibernate, vou pesquisar sobre o cache.

Grande abraço!

Alexandro.Almeida

Se já usa hibernate, e estes dados mudam pouco mesmo, olhe isso.
http://docs.jboss.org/hibernate/core/3.3/reference/en/html/performance.html#performance-cache

bigjoe

obrigado, estou estudando aqui!

Criado 29 de janeiro de 2010
Ultima resposta 5 de fev. de 2010
Respostas 4
Participantes 3