tenho uma aplicação que ler um txt e e transforma cada linha em um registro no banco, so que para cada linha eu to mandando da um Stmt.execute(); , so que tenho mas de 2 mil linhas no txt, então são 2000 update no banco, isso torna o sistema lento, estava usando Mysql, troquei para postrgres e o tempo diminui pela metade, mas mesmo assim acho muito lento, pesquisei bastante mas não consegui achar nada referente a Buffer para banco, existe algum meio de ficar colocando os registro em algum buffer e a cada 500 registros da um commit…? em outras linguagens tem como fazer isso, como e em java…?
Você pode tentar diminuir o tempo de insert usando o addBatch() e executeBatch()
Dá uma olhada nesse exemplo.
Já que esta usando o postgres, tenta usar o comando COPY do mesmo.
Voce monta um arquivo texto separado por algum caractere (por exemplo, ‘|’), e com os campos já na ordem dos proprios campos do banco de dados.
Depois, só dar o copy ( o arquivo precisa estar no servidor em que o banco de dados está )
COPY SUATABELA TO ‘/caminho_no_servidor/seu_arquivo_texto’ USING DELIMITERS ‘|’;
Provavelmente em menos de 20 segundos, terá seus 2 mil registros no banco de dados.
Abraços.