Re: traitement par lots et sequence

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é

In response to

Responses

Browse pgsql-fr-generale by date

  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