Re: traitement par lots et sequence

CRUMEYROLLE Pierre <[email protected]> Wed, 12 Jun 2019 14:18:25 +0200
Newsgroups gmane.comp.db.postgresql.french
Message-ID <[email protected]>
Ok
je confirme l'accumulation d'ordre TCL begin commit plombe les perfs
mon petit exemple est =C3=A0 titre d'exemple
en fait j'analyse une enorme usine =C3=A0 gaz code en hibernate/jpa cod=C3=
=A9=20=20
par=20des adeptes de l'object qui ont
pas penser au  monde relationnel ... et =C3=A7a fait mal via pgbadger
donc j'introduit du traitement par bath + de l agestion de sequnce par=20=
=20
plage=20+ de l agestion de transaction



Daniel Verite <[email protected]> a =C3=A9crit=C2=A0:

> CRUMEYROLLE Pierre wrote:
>
>> 3 -  boucle sur tous les id de m=C3=A8re
>> for i in liste_id_mere
>> {
>>    insertion d'un  paquet de j  filles pour une m=C3=A8re
>>    insert into T_filles idFils,idMere,datamere values
>> ((j,i,dataf1),(j,i,dataf2),(j,i,dataf3), .... (j,i,datafn));
>>     }
>> }
>>
>> je suis oblig=C3=A9 de faire de  l'insert par batch  car l'insertion
>> unitaire postgresql n'est pas top , seul le traitement par lots donne
>> des perfs convenables.
>
> N'oubliez pas de faire tout =C3=A7a dans la m=C3=AAme transaction, sinon =
c'est
> les commit interm=C3=A9diaires implicites qui ruinent les performances.
>
> Ind=C3=A9pendamment de =C3=A7a, effectivement envoyer beaucoup d'INSERT a=
vec peu
> de donn=C3=A9es =C3=A0 chaque fois n'est pas ce qu'il y a de plus efficac=
e, mais
> au vu de l'=C3=A9tape 3 ci-dessus, on ne voit pas pourquoi cette boucle F=
OR
> ne construit pas un seul INSERT par accumulation de VALUES, et
> l'ex=C3=A9cute une seule fois en dehors de la boucle.  Puisque que =C3=A7=
a
> ins=C3=A8re toujours dans la m=C3=AAme table et toujours avec les m=C3=AA=
me colonnes
> cibles.
>
> Et une fois qu'on en est l=C3=A0 dans le raisonnement, on peut se demande=
r
> aussi si =C3=A7a ne pourrait pas faire un COPY dans la table cible au lie=
u
> d'un INSERT g=C3=A9ant, ce qui serait plus rapide aussi en permettant
> notamment un effet de pipeline entre le client et le serveur.
>
>
> Cordialement,
> --
> Daniel V=C3=A9rit=C3=A9