Lentidao Hibernate

13 respostas
Hammer

bem, estou com um grande problema.
qd o cliente esta atualizando o consultando o banco de dados, o programa fica extremamente lento! parar voltar ao normal eel te q fechar e abrir de novo. oq rapidamente acontece de novo se ele comecar a atualizar e consultar, oq nao acontece qd o cliente esta salvando algo

ja configurei para o hibernate nao perder a conexao, entao nao eh isto, alguem poderia em ajudar? esta mt ruim isso. ja tentei de tudo

13 Respostas

Hammer

nao eh problema com conexao

pois estou fechando a conexao sempre ao final de alguma consulta, salvar e etc

e configurei o hibernte para nao perder a conexao caso fique ociosa

tava pensando em consumo de muita memoria, sera q pode ser isso?
tava pensando em usar gc(); qd fechar qualquer janela da minha aplicacao. sera q pode ser isso?

albertongai

Fala velinho!

Deixa eu fazer uma pergunta, você chegou a configurar os parametros que se referem a maneira com que os Beans são carregados? Se não, esse ai pode ser o seu problema, pois pelo que sei por default o Hibernate carrega a tabela inteira , isto é todas o conteúdo da tabela em memória, e isso degrada a velocidade da aplicação…

Espero ter ajudado…

Abraços!

Hammer

nao configurei nao, como q eu faco isso?

JotaJota

legal tbm gostaria de saber como fazer isso
t+

albertongai

Entendi… Então deixa eu explicar melhor, há vários pontos onde pode se haver melhoras,vou citar apenas dois.O primeiro é “ligar” o chamado lazy-loading que evita com que o hibernate carregue todas as tabelas dependentes quando se faz uma consulta em uma tabela específica… e o outro ponto de melhora de performance é a questão do cache para os objetos para que o Hibernate diminua a quantidade de vezes com que ele vai no BD e carrega os objetos, melhorando assim a velocidade… existem vários caches alguns mais famosos que outros, vou citar alguns como o EhCache, Treecache, etc

Nesse link abaixo tem algumas informações de como melhorar a performance do hibernate e dependendo do seu cenário isso pode cair como uma luva…

http://www.hibernate.org/hib_docs/reference/en/html/performance.html

Espero ter ajudado…

Hammer

bem, acho q fiz oq vc pediu, e realmente ficou bem mais rapido, axo q foi isso q vc falou:

@ManyToOne(fetch = FetchType.LAZY)

e antigamente estava assim:

@ManyToOne(fetch = FetchType.EAGER)

ou

@ManyToOne(cascade = CascadeType.ALL)

so q nao estou conseguindo mais salvar nada no meu banco de dados, o cliente q me indicou isso, e ja voltei o programa como estava antes, lento mas funciona, a parte principal eh onde tem o cascade, o erro q da eh q uma coluna no banco de dados nao pode ficar null, q eh justamente a parte do relacionamente entre tabelas, ele nao esta salvando isso, oq pode ser?

Hammer

bem, eu consegui resolver o problema e mt obg pela ajuda, ficou ebm mais rapido, so q ainda o cliente nao esta satisfeito, tem hora q se deixar o programa aberto, parado mt tempo, ou sej,a sem fazer anda e se for usar de repente ele fica muito lento, oq poderia ser? ja configurei o hibernate para nao perder a conexao.

dicabeca

oq vc fez vc mexeu no cascade ou fez o fetch ?,tem q tomar cuidado qnd mexer no cascade,pq tu vai mexer no ralacionamento entre as tabelas,a base de dados é muito grande ?o pc q roda o programa e bom ruim + ou -, como é???

Hammer

bem, em alguns casos o pc eh ruim ou ±

e retirei a sitacaod e cascade e deixei so fetch, esta rodando legal, sem nenhum erros aparentes, esperoq nao tenha nenhum mesmo.

oq poderia fazer mais? errei em alguma coisa?

estou precisando melhorar mais a perfomance, me parece q o cache nao eh mt acoselhavel, pois pode passar dados nao atualizados, ja vi mt isso nos foruns.

Hammer

tem alguma modificacao que poderia fazer nesse cascade? ou entao em qualquer outra coisa para ficar mais rapido?

dicabeca

cara a nivel de performasse,eu nao conheco muito,o link q o amigao passou ai em cima e bem interessante aconselho a ler,agora o cascade nao é uma solucao para melhorar a performasse ate melhora um pouco mais nao é a intençao,ele e para o relacionamento entreas tabelas e suas referencias!!!

Hammer

qd tirei o cascade tive q alterar a forma como estava salvando os objetos com relacionamento de tabelas, mas com o lazy fivou bem melhor

ja li oq o site disse ali, mas nao consegui axar alguma coisa q realmente fosse util para eu utilizar, eu uso o annotations

alguem tem mais alguma sugestao?

Hammer

o fetch seria o lazy pra ficar mais rapido, eo o cascade, tem algum q fica mais rapido?

ou alguma outra config?

Criado 21 de agosto de 2007
Ultima resposta 15 de set. de 2007
Respostas 13
Participantes 4