Lentidao ao Inserir varios registros[RESOLVIDO]

Ola pessoal, estou com um pequeno problema.

preciso fazer uma migrar de dados de um arquivo csv para o banco de dados.

quando eu inicio a transacao insere muito rapido so que quando passa do 18 mil registro as inserções ficam lentas.

minha pergunta é. Existem algum mecanismo no hibernate que contorne essa situacao.

estou utilizando hibernate e banco de dados e o MySQL.

Tem o código para mostrar?

o codigo é bem simples. eu apenas leio uma linha do arquivo texto, pois cada linha é um registro, e incluo no banco usando hibernate, as vezes faço algumas consultas antes.

bom consegui melhorar a performance apenas dando um clear() na sessao do hibernate.

acho que a lentidao era por que os dados ficavam alocados nela.

mas é isso ai pessoal para mim funcionou!

espero ter contribuido…

[quote=Welson Santos]o codigo é bem simples. eu apenas leio uma linha do arquivo texto, pois cada linha é um registro, e incluo no banco usando hibernate, as vezes faço algumas consultas antes.

bom consegui melhorar a performance apenas dando um clear() na sessao do hibernate.

acho que a lentidao era por que os dados ficavam alocados nela.

mas é isso ai pessoal para mim funcionou!

espero ter contribuido…[/quote]

Não sei como vc está fazendo, mas podes dar um commit no final da inserção de todos os objetos.

é exatamente assim que eu estou fazendo no inicio eu abro uma transacao e no final eu dou um commit, mas logo apos o commit eu dou um clear() na sessao. depois de fazer assim ficou show. agora a migracao acontence bem mais rapido.

Pensei que estivesse fazendo um commit para cada objeto, aí eu ia dizer, vai ficar lento msm :lol:

existem metodos das duas formas, uns que é aberto transacao para cada objeto, e outro para um conjunto de objeto, mas ai fica moleza dando um session.clear(); mesmo no metodo que se cria um transacao por objeto.