Vous n'êtes pas identifié(e).

#1 24/01/2011 17:53:24

genio
Membre

fonction autovacuum

Bonjour à tous...

1°) La fonction autovacuum est-elle souvent utilisée ?
2°) A quels intervales est-elle exécutée ?
3°) N'est-elle pas trop 'consommatrice' ?

Merci pour vos réponses...

Hors ligne

#2 24/01/2011 18:02:22

Marc Cousin
Membre

Re : fonction autovacuum

1) Ça dépend de ce que vous faites de votre base
2) Toutes les minutes par défaut, mais la plupart du temps, juste pour vérifier qu'il n'y a rien à faire.
3) Non, pas en elle même. Les vacuum qu'elle peut déclencher le sont eux. Mais ils sont nécessaires au bon fonctionnement de la base de toutes façons.


Marc.

Hors ligne

#3 24/01/2011 18:05:36

genio
Membre

Re : fonction autovacuum

Merci Marc...

2) Imaginons ma database en mode Autovacuum => Ok
A partir de quelle 'importance' de trou laissé par les m.a.j, l'autovacuum va t'il déclencher des vacuum ?

Hors ligne

#4 24/01/2011 18:06:58

Marc Cousin
Membre

Re : fonction autovacuum

Ça dépend de vos paramètres autovacuum*threshold et *limit.
Tout est ici:
http://docs.postgresql.fr/9.0/runtime-c … acuum.html


Marc.

Hors ligne

#5 24/01/2011 19:03:47

genio
Membre

Re : fonction autovacuum

Autre choses...
Voici un extrait d'un shell de ma cron-table, lancé toutes les 3 heures :
...
for table in sessions_actions sessions_threads operatorvars sessions ; do
        echo -n "`date '+%Y-%m-%d %H:%M:%S' ` ; vacuum table $table "
        vacuumdb akio -Uakio -z -t $table
...
=> OK


1°) la ligne  vacuumdb akio -Uakio -z -t $table me pose problème : Pourquoi effectuer un vacuumDB (vacuum de la database complete, si j'ai bien compris) et indiquer en même temps des noms de table à vacuumer ?

Hors ligne

#6 24/01/2011 19:09:38

Marc Cousin
Membre

Re : fonction autovacuum

si vous précisez un nom de table, vacuumdb ne vacuum que cette table. Cela restreint ce à quoi elle s'applique.


Marc.

Hors ligne

#7 25/01/2011 16:16:47

genio
Membre

Re : fonction autovacuum

Merci marc...
Cette ligne : psql Madatabase -Upostgres -c"ANALYZE;"  veut dire que nous analysons toutes les tables de Madatabase => Ok
1°) Je m'étonne simplement que ce genre de traitement soit envoyé toutes les 3 heures chez nous... cela n'est-il pas trop pénalisant ?

Hors ligne

#8 25/01/2011 16:25:14

Marc Cousin
Membre

Re : fonction autovacuum

Ça dépend vraiment de la taille de la base (nombre de tables, et de colonnes dans ces tables). Le nombre d'enregistrements par table a peu d'impact, puisque analyze échantillonne la table (on n'aura jamais plus de 300x le statistics_target échantillons, soit 30 000 par défaut, ce qui est la plupart du temps satisfaisant d'un point de vue statistique). Si c'est comparativement à Oracle, les stats sont bien plus rapide à collecter sous PostgreSQL…


Marc.

Hors ligne

#9 25/01/2011 16:45:29

genio
Membre

Re : fonction autovacuum

Merci...
J'ai fait un select de la table pg_statistic => OK
Comment fait-on par exemple, pour voir les cardinalités d'une colonne de la table TOTO (qui, si j'ai bien compris est représenté par la colonne starelid) ?

Hors ligne

#10 25/01/2011 16:50:16

Marc Cousin
Membre

Re : fonction autovacuum

Le mieux, c'est d'aller regarder pg_stats. C'est la colonne n_distinct


Marc.

Hors ligne

#11 25/01/2011 18:00:26

genio
Membre

Re : fonction autovacuum

Merci...

une autre : Nous avons un vacuum qui tourne tous les soir sur les tables suivantes :  sessions_actions, sessions_threads et operatorvars...
Je suppose que ce sont les tables 'systeme' les plus utilisées par Postgrès ?

Hors ligne

#12 25/01/2011 18:03:20

Marc Cousin
Membre

Re : fonction autovacuum

non, ce ne sont pas des tables système.


Marc.

Hors ligne

#13 25/01/2011 20:46:55

gleu
Administrateur

Re : fonction autovacuum

Pour infos, toutes les catalogues systèmes commencent par pg_. La partie information_schema est aussi considéré comme un catalogue système mais son nommage est défini par un standard.


Guillaume.

Hors ligne

Pied de page des forums