IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PostgreSQL Discussion :

[Administration] Amélioration des performances


Sujet :

PostgreSQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    ced
    ced est déconnecté
    Rédacteur/Modérateur

    Avatar de ced
    Homme Profil pro
    Gestion de bases de données techniques
    Inscrit en
    Avril 2002
    Messages
    6 059
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Gestion de bases de données techniques
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Avril 2002
    Messages : 6 059
    Par défaut [Administration] Amélioration des performances
    Bonjour à tous,

    J'ai un serveur de test avec une base de donnée Postgresql (version 8.3) sur une machine Windows XP (désolé, personne n'est parfait ).
    Je recopie, dans cette base, certaines tables de mon serveur de production.
    L'une de ces tables contient environ 2 600 000 lignes.

    La moindre requête sur cette "grosse" table prend des temps astronomiques. A titre d'exemple, un simple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT COUNT(*) FROM ma_grosse_table
    prend 458 secondes (soit 7 minutes 1/2).

    Bon, je passerai sur le fait que je trouve très surprenant qu'un SGBD parcours une table pour faire un COUNT(*) sans condition au lieu d'interroger son catalogue (c'est un autre débat, fort intéressant au demeurant, mais qui m'éloigne de mon problème ).

    Donc, je vous laisse imaginer les temps de certaines requêtes un peu plus complexes. Mes tests prennent des jours .
    J'ai pourtant indexé mes champs les plus souvent appelés.

    Avec une machine qui a quand même 2Go de RAM, je dois pouvoir allouer un peu plus de mémoire que ce que m'a fait l'installation par défaut de Postgres (que je n'ai pas retouchée), pour gagner en performance.
    Mais voilà, je suis une vraie buse en administration, et je ne comprends pas grand chose à tout ce que j'ai pu lire (en français comme en anglais d'ailleurs) sur le net à ce sujet... Il y a tellement de variables, et ça me paraît tellement complexe... Bref, c'est la panade !

    Quels paramètres augmenter dans le fichier de configuration, et de quelle taille ?
    Que me conseillez-vous pour tenter d'améliorer un peu ces performances (je suis sur une machine de test, donc je ne souhaite pas quelque chose aux petits oignons, mais au moins des requêtes qui tournent un peu plus vite ) ?

    Merci d'avance de votre aide,

    ced
    Rédacteur / Modérateur SGBD et R
    Mes tutoriels et la FAQ MySQL

    ----------------------------------------------------
    Pensez aux balises code et au tag
    Une réponse vous a plu ? N'hésitez pas à y mettre un
    Je ne réponds pas aux questions techniques par message privé, les forums sont là pour ça

  2. #2
    Membre Expert Avatar de scheu
    Inscrit en
    Juin 2007
    Messages
    1 506
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 1 506
    Par défaut
    Regarde ce post et essaie d'augmenter les paramètres cités :
    http://www.developpez.net/forums/sho...d.php?t=534096

    Essaie par exemple :
    - shared_buffers = 1024MB
    - work_mem = 64MB
    - temp_buffers = 50MB
    - maintenance_work_mem = 256MB
    - wal_buffers = 512kB --> pour les WAL
    - checkpoint_segments = 32 --> pour les WAL
    - stats_block_level = on --> pour les stats
    - stats_row_level = on --> pour les stats

    Et reloade la config (pg_ctl reload)

    Sinon pense à régulièrement faire des vacuum analyze sur tes tables
    La théorie, c'est quand on sait tout mais que rien ne fonctionne.
    La pratique, c'est quand tout fonctionne mais que personne ne sait pourquoi.
    Ici, nous avons réuni théorie et pratique : Rien ne fonctionne ... et personne ne sait pourquoi !

    Réplication de base avec Postgresql : http://scheu.developpez.com/tutoriel.../log-shipping/

  3. #3
    ced
    ced est déconnecté
    Rédacteur/Modérateur

    Avatar de ced
    Homme Profil pro
    Gestion de bases de données techniques
    Inscrit en
    Avril 2002
    Messages
    6 059
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Gestion de bases de données techniques
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Avril 2002
    Messages : 6 059
    Par défaut
    Excellent !

    Ca divise mon temps de requête par 5.

    Dès que j'aurais un peu de temps, je me plongerai dans l'explication du pourquoi et du comment de tout ça (bref, la théorie).

    Merci à toi .

    ced
    Rédacteur / Modérateur SGBD et R
    Mes tutoriels et la FAQ MySQL

    ----------------------------------------------------
    Pensez aux balises code et au tag
    Une réponse vous a plu ? N'hésitez pas à y mettre un
    Je ne réponds pas aux questions techniques par message privé, les forums sont là pour ça

  4. #4
    Membre Expert Avatar de scheu
    Inscrit en
    Juin 2007
    Messages
    1 506
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 1 506
    Par défaut
    En fait c'est toujours le problème quand on laisse le fichier postgresql.conf par défaut, c'est adapté aux petits configs et aux petites bases mais dès que tu montes en volumétrie tes temps de réponse explosent
    Tu pourras trouver dans la doc officielle la description de tous les paramètres
    La théorie, c'est quand on sait tout mais que rien ne fonctionne.
    La pratique, c'est quand tout fonctionne mais que personne ne sait pourquoi.
    Ici, nous avons réuni théorie et pratique : Rien ne fonctionne ... et personne ne sait pourquoi !

    Réplication de base avec Postgresql : http://scheu.developpez.com/tutoriel.../log-shipping/

  5. #5
    ced
    ced est déconnecté
    Rédacteur/Modérateur

    Avatar de ced
    Homme Profil pro
    Gestion de bases de données techniques
    Inscrit en
    Avril 2002
    Messages
    6 059
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Gestion de bases de données techniques
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Avril 2002
    Messages : 6 059
    Par défaut
    Encore merci de ton aide .

    ced
    Rédacteur / Modérateur SGBD et R
    Mes tutoriels et la FAQ MySQL

    ----------------------------------------------------
    Pensez aux balises code et au tag
    Une réponse vous a plu ? N'hésitez pas à y mettre un
    Je ne réponds pas aux questions techniques par message privé, les forums sont là pour ça

  6. #6
    Membre extrêmement actif
    Avatar de kedare
    Homme Profil pro
    SRE
    Inscrit en
    Juillet 2005
    Messages
    1 549
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Espagne

    Informations professionnelles :
    Activité : SRE

    Informations forums :
    Inscription : Juillet 2005
    Messages : 1 549
    Par défaut
    Hello,
    juste pour savoir: tu a réussit a améliorer d'avantage le temps de réponse ? si oui comment ?

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Architecture et amélioration des performances d'un réseau de neurones
    Par abidineb dans le forum Méthodes prédictives
    Réponses: 10
    Dernier message: 29/01/2010, 19h55
  2. Axis en local : Amélioration des performances
    Par bigjacky31 dans le forum Services Web
    Réponses: 0
    Dernier message: 01/07/2009, 17h10
  3. Réponses: 8
    Dernier message: 22/06/2009, 12h15
  4. Réponses: 1
    Dernier message: 25/05/2009, 09h14
  5. Réponses: 2
    Dernier message: 23/08/2007, 12h22

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo