Membro desde: 26/11/2007 13:44:01
Mensagens: 27
Offline
Bom dia pessoal,
Estou com algumas duvidas em relação à performance do Neo ao carregar as combos.
Primeira duvida: O Neo utiliza algum cache pra agilizar o carregamento das combos?
Muitas combos estáticas eu já implementei com enum, e o desempenho melhorou bastante mas ainda tem algumas que preciso carregar do banco.
Aqui onde trabalho a equipe tem o costume de usar Stored Procedures para agilizar o carregamento das combos. Tava pensando em fazer as SPs no hibernate e executar no método findForCombo dos DAOs.
Segunda duvida: Vcs acham que teria algum ganho em perfomance carregando as combos com SPs ao invés de usar padrão do Neo?
Membro desde: 17/04/2007 16:35:03
Mensagens: 275
Offline
Olá andre, tudo bom
Enums com certeza serão mais rápidos pois não tem que ir no banco. Se performance é um quesito importante na sua aplicação, usar enums é bem recomendado.
Quanto as stored procedures, se elas simplismente executarem o select que o hibernate executaria a performance seria praticamente a mesma.
O NEO faz cache dos resultados se os combos estiverem na mesma página, por exemplo: Se voce tiver dois combos de municipio na mesma página, só será feito um select.
Mas cada vez que for pedida a página o select será executado. Existe um cache mas que é excluido muito rapidamente apenas para ajudar caso dois usuários ao mesmo tempo desejam os resultados de uma mesma query. Mas enfatizando, esse cache é de curta duração e não vai melhorar a performance para acessos sequenciais a mesma página..
Se você desejar um cache mais "definitivo" você deverá implementar essa solucao no seu DAO.
Você poderá configurar o hibernate mais minunciosamente se você utilizar a configuração por applicationConfig.xml (descrito na documentacao). Essa configuração exige um xml (com exemplo na documentacao) mas te permite configurar o framework da forma que quiser..