Skip site navigation (1) Skip section navigation (2)

Besoin de conseil et de bo?==?iso-8859-15?Q?nnes idées

From: Sébastien Dinot <sebastien(dot)dinot(at)free(dot)fr>
To: pgsql-fr-generale(at)postgresql(dot)org
Subject: Besoin de conseil et de bo?==?iso-8859-15?Q?nnes idées
Date: 2005-06-03 08:47:40
Message-ID: 20050603084740.GA29037@newtech.fr (view raw or flat)
Thread:
Lists: pgsql-fr-generale
Bonjour à tous,

J'ai un problème sérieux et troublant de performance lors de
l'intégration massive de données en base (6 millions de lignes),
bien mis en évidence par le graphique suivant :

http://sebastien.dinot.free.fr/tmp/integration.png

- L'abscisse indique le nombre cumulé d'enregistrements traités.
- L'ordonnée, le temps en secondes pour intégrer les 10000 dernières
  lignes.

Les données _brutes_ sont stockées dans un fichier CSV. Elles ne sont
pas directement intégrables en base à grand coup d'INSERT ou de COPY
car elles requièrent un filtrage, une mise en forme, divers contrôles
de validité et doivent vérifier plusieurs contraintes d'intégrité.

Ces données sont donc traitées par un script Perl qui effectue
grossièrement les mêmes traitements pour chaque ligne et enregistre
selon leur nature les données dans une table parmi trois possibles.

Au niveau SQL, ces traitements impliquent entre un et trois SELECT,
puis un INSERT. L'une des trois tables contient des clés étrangères
vers quatre autres tables mais celles-ci sont de taille réduites et
surtout, ne sont pas modifiées durant l'intégration.

Je pense que le comportement de PostgreSQL au delà du premier million
d'enregistrements montre que mes tables sont correctement indexées
mais je ne m'explique pas les résultats catastrophiques constatés lors
de l'intégration du premier million.

Je soupçonne une défaillance de l'optimiseur qui ferait de mauvais
choix lorsqu'il y a peu de données en base.

Qu'en pensez-vous ? Que vous inspire ce graphique ? Avez-vous déjà
connu de tels déboires ? De quel côté jetteriez-vous un oeil ?

Pour info, j'utilise un serveur PostgreSQL 7.4.7 sous Debian GNU/Linux
3.1 testing.

Sébastien

-- 
Sébastien Dinot, sebastien(dot)dinot(at)free(dot)fr
http://sebastien.dinot.free.fr/
Ne goûtez pas au logiciel libre, vous ne pourriez plus vous en passer !

Responses

pgsql-fr-generale by date

Next:From: Geoffroy GRANDDate: 2005-06-03 10:33:55
Subject: Re: pbl de connection entre PHP et Postgre 7.4.7
Previous:From: Jean-Christophe ArnuDate: 2005-06-03 08:36:55
Subject: Re: pbl de connection entre PHP et Postgre 7.4.7

Privacy Policy | About PostgreSQL
Copyright © 1996-2014 The PostgreSQL Global Development Group