From: | "Daniel Verite" <daniel(at)manitou-mail(dot)org> |
---|---|
To: | "CRUMEYROLLE Pierre" <pierre(dot)crumeyrolle(at)c-s(dot)fr> |
Cc: | pgsql-fr-generale(at)lists(dot)postgresql(dot)org |
Subject: | Re: traitement par lots et sequence |
Date: | 2019-06-12 13:45:23 |
Message-ID: | 68b1594f-09d9-409d-97af-307f906593f4@manitou-mail.org |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-fr-generale |
CRUMEYROLLE Pierre wrote:
> en fait j'analyse une enorme usine à gaz code en hibernate/jpa codé
> par des adeptes de l'object
Effectivement ça complique beaucoup l'affaire, je compatis...
Juste une piste qui peut mériter un coup d'oeil si une refactorisation
n'est pas possible: JDBC a un mode batch qui permet d'accélerer
ce genre d'INSERTs à la file.
Ca s'utilise avec les méthodes addBatch() et executeBatch()
de Statement, cf [1].
L'effet est que les INSERT d'après sont envoyés par le client
alors que les INSERT d'avant sont encore en train de s'exécuter
sur le serveur, ce qui accélère globalement l'ensemble
(effet pipeline, comme COPY).
D'ailleurs un patch a été proposé pour faire ça dans libpq (en C) [2],
je l'avais testé avec pgbench il y a quelque temps et les résultats
étaient impressionnants.
Malheureusement il est resté tanké dans le processus de validation
(mais je ne désespère pas qu'il pourrait revivre pour une intégration
dans Postgres 13).
Le driver JDBC de PostgreSQL n'est pas basé sur libpq et a déjà
cette fonctionnalité.
[1]
https://stackoverflow.com/questions/3784197/efficient-way-to-do-batch-inserts-with-jdbc/
[2] https://commitfest.postgresql.org/10/634/
Cordialement,
--
Daniel Vérité
From | Date | Subject | |
---|---|---|---|
Next Message | CRUMEYROLLE Pierre | 2019-06-12 13:56:49 | Re: traitement par lots et sequence |
Previous Message | CRUMEYROLLE Pierre | 2019-06-12 12:25:08 | Re: traitement par lots et sequence |