Re: parallelisme insert/update unnest constraint

From: Guillaume Lelarge <guillaume(at)lelarge(dot)info>
To: CRUMEYROLLE Pierre <pierre(dot)crumeyrolle(at)c-s(dot)fr>
Cc: pgsql-fr-generale(at)lists(dot)postgresql(dot)org
Subject: Re: parallelisme insert/update unnest constraint
Date: 2019-09-02 13:17:00
Message-ID: CAECtzeWFYNc5-uAKY3UXXTpdvBxS3nFvit+=ob4LJF94Mvc7Sg@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-fr-generale

Le lun. 2 sept. 2019 à 14:17, CRUMEYROLLE Pierre <pierre(dot)crumeyrolle(at)c-s(dot)fr>
a écrit :

>
> bonjour
>
> je tente de faire un update massif par unnest sur un table de 20
> millions de ligne,
> j'ai l'impression que le parallélisme n'est pas vraiment pris en
> compte dans ce cas
> les cpu sont à 100% mais pas par alternance , pas de répartition
> homogène de la charge cpu.
>
> les perf en insertion sont bonnes ( 10 millions de ligne en 6 minutes)
> par contre en update ça rame .
>
> malgré un postgresl.conf adapté à une cible multi cpu (12)
> max_worker_processes = 12
> max_parallel_workers_per_gather = 6
> max_parallel_workers = 12
> version => postgresl 11.4
>
> ma question : peut t'on faire du parallélisme sur de l'insert ou de
> l'update avec ou sans contraintes defferées ?
> (j'ai cru comprendre que parallélisation => multi transaction => pas
> de constraintes )
>
> ce que je fais dans une proc stock tentative update massif par unnest
> ( mais c'est peut être pas la bonne piste ? )
>
> -- pk defferable
> SET CONSTRAINTS t_test_pkey DEFERRED;
>
> UPDATE T_test SET data = jsonb_set(T.datanew::jsonb, '{id}',to_jsonb(
> 'provider ' || (T.id::text))) , created_at = T.created_at::timestamp
> FROM (select * from
> unnest(tabi) as id,
> unnest(tabp) as provider,
> unnest(tabdate) as created_at,
> unnest(tab) as datanew) T
> where T_test.id=cast(T.id as int);
> COMMIT;
>
>
PostgreSQL ne parallélise pas les requêtes en écriture (comme INSERT ou
UPDATE). Le seul moyen est de paralléliser au niveau applicatif (donc
plusieurs connexions, chacune faisant ses INSERT/UPDATE).

--
Guillaume.

In response to

Responses

Browse pgsql-fr-generale by date

  From Date Subject
Next Message Castello Claude 2019-09-02 13:31:55 Re: surprenant résultat : rollback sur update après pg_dump
Previous Message CRUMEYROLLE Pierre 2019-09-02 12:18:07 parallelisme insert/update unnest constraint