PostgreSQL La base de donnees la plus sophistiquee au monde.

Forums PostgreSQL.fr

Le forum officiel de la communauté francophone de PostgreSQL

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

#1 27/04/2011 19:08:48

Pooky
Membre

Vacuum FULL

Bonjour,

Existerait il une table système sur laquelle s'appuyer afin de connaitre l'état de fragmentation des tables ?
En gros puis je obtenir une estimation de l'espace disque que je pourrais gagner en faisant un vacuum full sur ma base ?

Sachant que c'est une opération qui peut s'avérer parfois lourde, j'aimerais être sur du gain que je peux en retirer.

Merci par avance.

Hors ligne

#2 27/04/2011 21:02:01

gleu
Administrateur

Re : Vacuum FULL

Existerait il une table système sur laquelle s'appuyer afin de connaitre l'état de fragmentation des tables ?

Non.

En gros puis je obtenir une estimation de l'espace disque que je pourrais gagner en faisant un vacuum full sur ma base ?

L'outil check_postgres est capable de le faire avec son action bloat. Ceci dit, ce n'est qu'une estimation. De toute façon, l'utilisation de l'option FULL est à envisager que dans deux cas : suppression ou mise à jour massive (ie au moins la moitié de la table), ou base hors production.


Guillaume.

Hors ligne

#3 03/05/2011 16:50:55

Pooky
Membre

Re : Vacuum FULL

Merci bien.

J'aurais une autre interrogation concernant cette fois ci la remise a zéro des statistiques.
A part l'utilisation de pg_stat_reset, y'a t'il d'autres événements qui peuvent remettre a jour les statistiques du nombre de fois qu'un index est utilisé par exemple ?
Un REINDEX puisqu'il drop et recréer les index si je ne m'abuse, remet-il a zéro également les statistiques ?

Hors ligne

#4 03/05/2011 16:54:46

gleu
Administrateur

Re : Vacuum FULL

L'implémentation de REINDEX revient à un DROP et à un CREATE mais ce n'est pas la même chose qu'un DROP suivi d'un CREATE. Donc, non, vous ne perdez pas les statistiques en question.

Sur les anciennes versions, il y avait un paramètre stats_reset_on_server_start pour réinitialiser les stats au démarrage du serveur. Ce paramètre a disparu depuis la 8.3.

En dehors de ça, il est possible de supprimer le fichier de stats. Dans ce cas toutes les stats disparaissent.

Si vous voulez pouvoir supprimer des stats sur des objets spécifiques, il vous faut une version 9.0.


Guillaume.

Hors ligne

#5 03/05/2011 16:57:53

Marc Cousin
Membre

Re : Vacuum FULL

Il existe quand même un module contrib, pgstattuple, qui permet de mesurer, et non plus d'estimer, la fragmentation d'une table. Il a un défaut: il faut scanner intégralement la table pour avoir l'information.


Marc.

Hors ligne

Pied de page des forums