Bom dia a todos,
estou desenvolvendo uma aplicação, que importa dados(produtos) de um arquivo “.txt” e persiste em um banco de dados,
estou trabalhando em uma base de mais de 5mil produtos,
oque está acontecendo eh que a medida que o programa vai inserindo com o passar do tempo as inserções vão ficando mais lentas,
imprimi o time a cada 100 inserções e observei que começa com 20seg depois 30seg e por ai vai parei quando ja tava levenado 2 minutos para inserir 100produtos.
já coloquei o flush() de tempo em tempo mas não deu resultado
entityManager.flush();
alguma sugestão?
Somente com base nisso não dá pra saber o que acontece. O que você está usando ? JPA ou JDBC puro ? Código ajuda também.
Tenta chamar o Garbage Collector de vez em quando:
[quote=markinlelo]Bom dia a todos,
estou desenvolvendo uma aplicação, que importa dados(produtos) de um arquivo “.txt” e persiste em um banco de dados,
estou trabalhando em uma base de mais de 5mil produtos,
[/quote]
5 mil produtos é uma base minúscula, mas qualquer “bulk insert” não deveria ser feito com JPA, ou mesmo com JDBC, mas normalmente com alguma ferramenta de “bulk insert” do seu banco. O “System.gc()” não vai resolver seu problema, porque essa demora é do banco.
Um exemplo do que se deve fazer em Oracle: http://www.dbspecialists.com/files/presentations/load_faster.html
Um exemplo do que se deve fazer em MySQL: http://www.roseindia.net/sql/mysql-example/loader-tutorial.shtml
[quote=entanglement][quote=markinlelo]Bom dia a todos,
estou desenvolvendo uma aplicação, que importa dados(produtos) de um arquivo “.txt” e persiste em um banco de dados,
estou trabalhando em uma base de mais de 5mil produtos,
[/quote]
5 mil produtos é uma base minúscula, mas qualquer “bulk insert” não deveria ser feito com JPA, ou mesmo com JDBC, mas normalmente com alguma ferramenta de “bulk insert” do seu banco. O “System.gc()” não vai resolver seu problema, porque essa demora é do banco.
Um exemplo do que se deve fazer em Oracle: http://www.dbspecialists.com/files/presentations/load_faster.html
Um exemplo do que se deve fazer em MySQL: http://www.roseindia.net/sql/mysql-example/loader-tutorial.shtml
[/quote]
Corretíssimo!