Como melhorar o desempenho do meu Sistema?  XML
Índice dos Fóruns » Desenvolvimento Web
Autor Mensagem
aorocha
JavaChild
[Avatar]

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.
ViniGodoy
Moderador
[Avatar]

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.
[WWW]
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

andredeividi
Virtual Machine Man
[Avatar]

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/

[Email] [WWW] [MSN]
vegetasw
Entusiasta Java
[Avatar]

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!
[MSN]
cv
Moderador
[Avatar]

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.
[Email] [WWW] [Yahoo!] [MSN] [ICQ]
bonfarj
Java Ninja
[Avatar]

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
aorocha
JavaChild
[Avatar]

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.
otaviofcs
Virtual Machine Man
[Avatar]

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
[WWW]
aorocha
JavaChild
[Avatar]

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.
 
Índice dos Fóruns » Desenvolvimento Web
Ir para:   
Powered by JForum 2.1.8 © JForum Team