Estou escrevendo um programa que faz um monte de gravações para um banco de dados Postgres. Em um cenário típico que eu estaria escrevendo dizer 100.000 linhas a uma tabela que está bem normalizada (três chaves inteiras estrangeira, a combinação de que é a chave primária e o índice da tabela). Eu estou usando PreparedStatements e executeBatch (), mas eu só consegue empurrar dizer 100k linhas em cerca de 70 segundos no meu laptop, quando o banco de dados integrado que estamos substituindo (que tem as mesmas restrições de chaves estrangeiras e índices) fá-lo em 10.
Eu sou novo JDBC e eu não esperava que bater um DB incorporado costume, mas eu estava esperando para ser apenas 2-3x mais lento, não 7x. Qualquer coisa óbvia que eu talvez faltando? se a ordem das gravações importa? (Isto é dizer, se não é a ordem do índice?). Coisas para olhar para espremer uma velocidade de pouco mais?













