J'écris un programme qui fait beaucoup d'écritures dans une base de données Postgres. Dans un scénario typique j'écrirais dis 100 000 lignes à une table qui est bien normalisée (trois clés entières étrangères, dont la combinaison est la clé primaire et l'index de la table). J'utilise PreparedStatements et executeBatch(), mais je n'arrive à pousser que 100k lignes en environ 70 secondes sur mon ordinateur portable, quand la base de données intégrée que nous remplaçons (qui a les mêmes contraintes et indices de clé étrangère) le fait 10.Conseils pour accélérer JDBC écrit?
Je suis nouveau chez JDBC et je ne m'attends pas à ce qu'il batte un DB incorporé personnalisé, mais j'espérais qu'il soit seulement 2-3 fois plus lent, pas 7x. Quelque chose d'évident que j'ai peut-être manqué? L'ordre des écritures est-il important? (c'est-à-dire si ce n'est pas l'ordre de l'index?). Les choses à regarder pour presser un peu plus de vitesse?
Mise à jour: J'aurais dû ajouter que toutes les mises à jour ci-dessus ont été faites en une seule transaction et que j'ai essayé de supprimer les indices, sans grand impact (peut-être une amélioration de 20% au mieux). ajout d'indices). –
Quelle est la base de données intégrée à laquelle vous la remplacez? – systemoutprintln