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 :

execution d'un vacuum à chaque creation d'une nouvelle table


Sujet :

PostgreSQL

  1. #1
    Membre régulier
    Inscrit en
    Décembre 2007
    Messages
    213
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 213
    Points : 105
    Points
    105
    Par défaut execution d'un vacuum à chaque creation d'une nouvelle table
    bonjour,

    est il possible de déclencher un vacuum à chaque création d'une table plutôt que de le faire manuellement à chaque fois ?

    je suis sous postgresql 9.1.

    J'ai beau cherché je ne vois pas. Il y a bien l'automatisation des vacuum à chaque X (à configurer dans postgresql.conf) insertion mais ça ne déclenche pas le vacuum à la création.

    merci pour votre aide.

    Sai.

  2. #2
    Membre émérite
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    1 874
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 874
    Points : 2 890
    Points
    2 890
    Par défaut
    VACUUM n'est utile que s'il y a eu des contenus modifiés ou effacés dans la table.
    Au moment de la création d'une table il n'y en a pas donc un VACUUM à ce moment-là ne sert à rien. Ce serait comme passer le ramasse-miettes quand il n'y a pas de miette.

  3. #3
    Membre régulier
    Inscrit en
    Décembre 2007
    Messages
    213
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 213
    Points : 105
    Points
    105
    Par défaut
    oui tu as raison.

    En fait, je pensais plus à et là pour le coup si je ne l'exécute pas mes requêtes sont beaucoup plus longues...

    Dans mon cas précis mes nouvelles tables ne sont pas très volumineuses (+/- 200K lignes) mais assez pour ralentir une requête si mes tables ne sont pas analysées au préalable.

    Edit : bon j'ai rien dit...je ne savais pas que l'on pouvait analyser une table sans forcément ajouter le mot clé vacuum...et j'essayais d'écrire une fonction or il n'est pas possible d'inclure un vacuum dans une fonction mais je peux très inclure analyze ma_table et mettre un trigger à chaque création de table.
    Bon ça doit pas être très clair mais c'est résolu !

    Merci !!

  4. #4
    Membre émérite
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    1 874
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 874
    Points : 2 890
    Points
    2 890
    Par défaut
    Oui généralement quand on charge une table tout neuve avec pas mal de données, on fait un ANALYZE immédiatement après si on veut la requêter tout de suite. En pratique l'analyze est assez rapide avec les paramétrages statistiques par défaut.

    Sinon l'autovacuum (qui fait aussi auto-analyze en fait) s'en charge, mais pas forcément dans les secondes qui suivent.

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 07/06/2006, 21h35
  2. creation d'une nouvelle database
    Par new_wave dans le forum Général Dotnet
    Réponses: 4
    Dernier message: 29/05/2006, 13h14
  3. Réponses: 2
    Dernier message: 20/04/2006, 14h33
  4. Réponses: 11
    Dernier message: 26/01/2006, 11h57
  5. [Cookies] Chaque page démarre une nouvelle session
    Par Invité dans le forum Langage
    Réponses: 3
    Dernier message: 21/01/2006, 21h17

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