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
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…
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?