Pour insérer beaucoup de tuples...

Lists: pgsql-fr-generale
From: Stephane Bortzmeyer <bortzmeyer(at)nic(dot)fr>
To: pgsql-fr-generale(at)postgresql(dot)org
Subject: Pour insérer beaucoup de tuples...
Date: 2010-09-07 20:36:20
Message-ID: 20100907203620.GA6745@sources.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-fr-generale

Je pense que tout le monde ici connait déjà mais, si vous voulez
relayer (ou corriger les erreurs...) :

http://www.bortzmeyer.org/copy-and-insert.html

Tiens, un petit problème de performance avec un SGBDR. Pour insérer un
grand nombre de tuples, est-ce plus rapide avec une boucle sur le
traditionnel INSERT ou bien avec une autre commande SQL, COPY ? [...]


From: Laurent Wandrebeck <l(dot)wandrebeck(at)gmail(dot)com>
To: Stephane Bortzmeyer <bortzmeyer(at)nic(dot)fr>
Cc: pgsql-fr-generale(at)postgresql(dot)org
Subject: Re: Pour insérer beaucoup de tuples...
Date: 2010-09-08 06:49:29
Message-ID: 20100908084929.353b916d.l.wandrebeck@gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-fr-generale

On Tue, 7 Sep 2010 22:36:20 +0200
Stephane Bortzmeyer <bortzmeyer(at)nic(dot)fr> wrote:

> Je pense que tout le monde ici connait déjà mais, si vous voulez
> relayer (ou corriger les erreurs...) :
>
> http://www.bortzmeyer.org/copy-and-insert.html
>
> Tiens, un petit problème de performance avec un SGBDR. Pour insérer un
> grand nombre de tuples, est-ce plus rapide avec une boucle sur le
> traditionnel INSERT ou bien avec une autre commande SQL, COPY ? [...]
COPY, clairement. supprimer les index et les recréer ensuite.
ensuite, il y'a d'autres méthodes pour encore accélérer (delayed
transactions si ma mémoire ne me fait pas défaut), mais il faut pour ça
avoir une version récente (8.4 mini il me semble). Je ne retrouve pas
les mails qui en parle, il va falloir que tu cherches un peu par
toi-même :)
--
Laurent


From: Dimitri Fontaine <dfontaine(at)hi-media(dot)com>
To: Stephane Bortzmeyer <bortzmeyer(at)nic(dot)fr>
Cc: pgsql-fr-generale(at)postgresql(dot)org
Subject: Re: Pour insérer beaucoup de tuples...
Date: 2010-09-09 08:04:17
Message-ID: 878w3be41q.fsf@hi-media-techno.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-fr-generale

Stephane Bortzmeyer <bortzmeyer(at)nic(dot)fr> writes:
> http://www.bortzmeyer.org/copy-and-insert.html

Je déconseille fortement l'usage de pgbulkload, car ses améliorations de
performances reposent essentiellement sur l'absence de support des
triggers et des rules, et surtout il ne valide pas les données en
entrée. Du coup ça n'est utilisable que pour du restore d'un dump de
confiance, et encore.

> Tiens, un petit problème de performance avec un SGBDR. Pour insérer un
> grand nombre de tuples, est-ce plus rapide avec une boucle sur le
> traditionnel INSERT ou bien avec une autre commande SQL, COPY ? [...]

http://www.depesz.com/index.php/2007/07/05/how-to-insert-data-to-database-as-fast-as-possible/

--
dim


From: Stephane Bortzmeyer <bortzmeyer(at)nic(dot)fr>
To: Dimitri Fontaine <dfontaine(at)hi-media(dot)com>
Cc: pgsql-fr-generale(at)postgresql(dot)org
Subject: Re: Pour insérer beaucoup de tuples...
Date: 2010-09-10 14:28:57
Message-ID: 20100910142857.GA30586@nic.fr
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-fr-generale

On Thu, Sep 09, 2010 at 10:04:17AM +0200,
Dimitri Fontaine <dfontaine(at)hi-media(dot)com> wrote
a message of 21 lines which said:

> Je déconseille fortement l'usage de pgbulkload, car ses
> améliorations de performances reposent essentiellement sur l'absence
> de support des triggers et des rules, et surtout il ne valide pas
> les données en entrée. Du coup ça n'est utilisable que pour du
> restore d'un dump de confiance, et encore.

Merci beaucoup, article mis à jour.