From: | Stéphane Schildknecht <sas(at)atosc(dot)org> |
---|---|
To: | Sébastien Dinot <sebastien(dot)dinot(at)free(dot)fr> |
Cc: | pgsql-fr-generale(at)postgresql(dot)org |
Subject: | Re: [pgsql-fr-generale] Besoin de conseil et de bonnes idées |
Date: | 2005-06-03 10:50:09 |
Message-ID: | 42A035E1.8020609@atosc.org |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-fr-generale |
Sébastien Dinot wrote:
>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
>
>
>
Salut Sébastien,
Après discussion avec BCH, nous souhaiterions voir les résultats que tu
obtiens dans les mêmes situations de tests, mais SANS l'exécution de la
clause INSERT.
Ceci afin de valider ou infirmer une première hypothèse.
Amitiés et meilleurs souvenirs de BCH.
Amicalement
Stéphane Schildknecht
From | Date | Subject | |
---|---|---|---|
Next Message | Sébastien Dinot | 2005-06-03 12:35:12 | Re: Be |
Previous Message | Geoffroy GRAND | 2005-06-03 10:33:55 | Re: pbl de connection entre PHP et Postgre 7.4.7 |