PostgreSQL La base de donnees la plus sophistiquee au monde.

Forums PostgreSQL.fr

Le forum officiel de la communauté francophone de PostgreSQL

Vous n'êtes pas identifié(e).

#1 25/09/2025 15:30:12

genamiga
Membre

INSERT en Batch très lent depuis JDBC Driver 42.7.7

Bonjour,

Dans mon application Java je fais des INSERT en batch avec :

preparedStatement.addBatch();

et tous les XXX je fais :

preparedStatement.executeBatch();


J'utilise le JDBC Driver 42.7.5 en production, pas de soucis mais à partir de la version 42.7.7 (je n'ai pas testé la version 42.7.6 parce que noté avec une vulnérabilité sur Maven!?)

J'ai fais le test plusieurs fois avec des données différentes...

La vitesse passe de +- 5500/sec (42.7.5) à +- 200/sec (42.7.7 ou plus)

N'ayant rien changé à mon code Java cela vient à coup sûr du JDBC Driver

Une idée ?


Merci d'avance.

Hors ligne

#2 29/09/2025 14:59:35

Marc Cousin
Membre

Re : INSERT en Batch très lent depuis JDBC Driver 42.7.7

Bonjour,
À ma connaissance, rien n'a changé dans cette partie du code entre ces deux versions. Le mieux serait de regarder dans les logs du côté de PostgreSQL ce qui change entre les deux versions, pour le même traitement. Avec un log_min_duration_statement=0 par exemple, pour que PostgreSQL trace tous les prepare/bind/execute avec leur timing.


Marc.

Hors ligne

#3 01/10/2025 17:47:15

genamiga
Membre

Re : INSERT en Batch très lent depuis JDBC Driver 42.7.7

J'ai publié ma question sur le Github du connecteur JDBC et ils m'ont aidé à trouver le problème.

A des fin de débug je faisais un preparedStatement.toString() dans ma boucle de préparation de batch. En l'enlevant la vitesse est correcte.

Ce qui est étrange est que le toString n'a pas d'impact avec la version 42.7.5 et antérieur...

Hors ligne

Pied de page des forums