| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 29/03/2007 16:50:06
|
aorocha
JavaChild
![[Avatar]](/images/avatar/2be5f9c2e3620eb73c2972d7552b6cb5.jpg)
Membro desde: 07/04/2005 16:11:37
Mensagens: 140
Offline
|
No começo era rapinho, agora comk muitos acessos simultaneos e muitos registro no bd, ficou muito lento e o pessoal começou a reclamar, o que eu poderia usar para melhorar?
Uso java 5 Hibernate 3 e tomcat.
Qualquer sugestão será bem vinda.
|
Alexandre Ortiz da Rocha.
Dar soluções simples a grandes problemas e não dar soluções complexas a pequenos problemas. |
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 29/03/2007 16:56:26
|
ViniGodoy
Moderador
![[Avatar]](/images/avatar/1921493b5362e63fbe8983f4bd54157d.png)
Membro desde: 11/12/2006 08:22:01
Mensagens: 20580
Localização: Curitiba/PR
Offline
|
Primeiro de tudo, use um profiler para ver onde está o problema de performance.
No caso de BD:
1. Evite fazer/desfazer conexões com o banco;
2. Use caches para não carregar os mesmos objetos repetidas vezes;
3. Procure como otimizar consultas usando o hibernate.
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 29/03/2007 16:59:34
|
marcelo_emanoel
Debugger
Membro desde: 01/07/2004 16:42:17
Mensagens: 62
Localização: Campina Grande
Offline
|
Já tentou fazer profiling?
provavelmente como vc citou que no começo era rápido e depois que foram inseridos vários registros no banco... talvez vc esteja com alguma consulta fazendo coisas que não deveria... ou talvez algum algoritmo não muito legal... tudo isso depende muito... e vc só vai saber realmente o que está acontecendo quando tiver instrumentação pra isso... isso signigfica que você vai precisar "perder" algum tempinho coletando dados... até que td esteja mais claro e vc saiba em que ponto o sistema está falho...
Uma sugestão caso vc ainda não esteja usando é controle de paginação...
o banco retorna menos resultados e a resposta eh bem mais rápida
hibernate tem suporte a paginação...
Enfim... ta dada a dica
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 29/03/2007 17:05:31
|
andredeividi
Virtual Machine Man
![[Avatar]](/images/avatar/a2b8a85a29b2d64ad6f47275bf1360c6.jpg)
Membro desde: 20/08/2005 10:55:12
Mensagens: 635
Localização: Joinville Sc
Offline
|
Existem n maneiras de melhorar o desempenho de um sistema.
eu começaria analizando as suas consultas no banco de dandos
como esta os indeces, se exciste alguma busca sequencial. etc.
no mais nossos amigos ja mencionaram.
Abraço
|
http://andrecaetano.blogspot.com/
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 29/03/2007 17:32:58
|
vegetasw
Entusiasta Java
![[Avatar]](/images/avatar/eb4ccb5a339da7a1f01b8f9688896b65.jpg)
Membro desde: 27/03/2007 13:02:51
Mensagens: 23
Localização: Franco da Rocha - SP
Offline
|
Você faz relacionamentos entre ORMs no uso do Hibernate?
Se sim, verifique os relacionamentos entre eles, dependendo de como está, o Hibernate pode estar trazendo informações a mais nas buscas.
|
Nenhuma mulher resiste a uma boa cantada, principalmente a dos pneus! |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 29/03/2007 22:29:58
|
cv
Moderador
![[Avatar]](/images/avatar/210f760a89db30aa72ca258a3483cc7f.jpg)
Membro desde: 04/04/2003 00:32:12
Mensagens: 7842
Localização: São Paulo, SP
Offline
|
Alem de tudo isso (e talvez antes de tudo isso), ja olhou os indices do seu banco? Arrume um DBA competente pra dar uma olhada na sua aplicacao.
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 30/03/2007 03:23:45
|
bonfarj
Java Ninja
![[Avatar]](/images/avatar/1454ca2270599546dfcd2a3700e4d2f1.jpg)
Membro desde: 28/03/2006 09:55:47
Mensagens: 298
Offline
|
Você está usando qual pool de conexões? Faz uso de lazy loading? Fale mais da sua aplicação.
abraços,
|
IGOR BRITO ALVES
@igoralves
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 30/03/2007 11:59:09
|
aorocha
JavaChild
![[Avatar]](/images/avatar/2be5f9c2e3620eb73c2972d7552b6cb5.jpg)
Membro desde: 07/04/2005 16:11:37
Mensagens: 140
Offline
|
mey hibernate.cdg.xml esta assim:
estou usando anotações do hibernate então os relacionamento nos meus pojos ficam assim:
Como que faço para usar Cache do Hibernate?
|
Alexandre Ortiz da Rocha.
Dar soluções simples a grandes problemas e não dar soluções complexas a pequenos problemas. |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 30/03/2007 13:17:55
|
otaviofcs
Virtual Machine Man
![[Avatar]](/images/avatar/2509e9380eb3623ef61046dcd190275d.jpg)
Membro desde: 21/12/2006 18:01:54
Mensagens: 511
Localização: Rio de Janeiro
Offline
|
Problemas de performance associadas a sistemas que cresceram muito a base de dados normalmente está associado a mau uso do banco. Se for realmente crítico contrate um DBA (que sabe o que faz). Por exemplo, tenha cuidado com os campos de joins e com os filtros mais usados.
Se uma tabela é grande (muitos registros) e um determinado campo é sempre usado para filtro, então tá na hora de pensar em colocar um índice nesse campo. Mesma coisa para um campo que é sempre usado para joins. Só não vai pegar uma tabela de 20 colunas e colocar índice para todos os campos, porque a cada inclusão, o BD vai ter que tratar de modificar cada um dos índices. Cuidado também com joins de 2 tabelas grandes.
Só para saber, qual o bd?
|
visite o blog da Riopro em:
http://blog.riopro.com.br
Aumente a capacidade de inovação na sua empresa usando o Zest:
http://zest.com.br
Conheça também:
http://votebolsa.com.br |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 30/03/2007 14:35:22
|
aorocha
JavaChild
![[Avatar]](/images/avatar/2be5f9c2e3620eb73c2972d7552b6cb5.jpg)
Membro desde: 07/04/2005 16:11:37
Mensagens: 140
Offline
|
otaviofcs wrote:Problemas de performance associadas a sistemas que cresceram muito a base de dados normalmente está associado a mau uso do banco. Se for realmente crítico contrate um DBA (que sabe o que faz). Por exemplo, tenha cuidado com os campos de joins e com os filtros mais usados.
Se uma tabela é grande (muitos registros) e um determinado campo é sempre usado para filtro, então tá na hora de pensar em colocar um índice nesse campo. Mesma coisa para um campo que é sempre usado para joins. Só não vai pegar uma tabela de 20 colunas e colocar índice para todos os campos, porque a cada inclusão, o BD vai ter que tratar de modificar cada um dos índices. Cuidado também com joins de 2 tabelas grandes.
Só para saber, qual o bd?
Resp. Postgre
|
Alexandre Ortiz da Rocha.
Dar soluções simples a grandes problemas e não dar soluções complexas a pequenos problemas. |
|
|
 |
|
|