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 01/09/2009 11:17:54

Erjo
Membre

pg_toast

Bonjour,

En faisant un vaccum full sur une table j'ai noté la ligne suivant:

INFO:  « pg_toast_4278053 » : 323 versions de ligne déplacées, 3566 pages tronquées sur 2949

Je ne comprends pas trop à quoi correspond la table pg_toast et surtout pourquoi elle à été créée.
Si quelqu'un avait une idée...

NB: Je suis en version 7.4 (Oui, je sais...)

+Erjo

Hors ligne

#2 01/09/2009 12:13:42

gleu
Administrateur

Re : pg_toast

Lorsque le contenu d'une colonne de type varchar, text ou bytea dépasse une certaine taille (2ko à mon souvenir), ce contenu est enregistré dans une table TOAST qui est associé à la table principale et un pointeur est stocké dans le fichier de la table pour que PostgreSQL retrouve ses petits. C'est un comportement standard de PostgreSQL, pas d'inquiétude à avoir.

Pour plus d'informations, n'hésitez pas à lire : http://docs.postgresqlfr.org/8.4/storage-toast.html


Guillaume.

Hors ligne

#3 01/09/2009 14:17:29

Erjo
Membre

Re : pg_toast

Rapide la réponse. Merci  beaucoup.
J'avais survolé la doc, n'étant pas en 8.4 je ne pensais pas être concerné...

Hors ligne

#4 01/09/2009 14:40:01

gleu
Administrateur

Re : pg_toast

Si, ce mécanisme existe depuis bien longtemps. Cependant, il n'est pas documenté dans le manuel de la 7.4. D'où le lien vers la 8.4.


Guillaume.

Hors ligne

#5 22/07/2011 10:18:52

Michael REMY
Membre

Re : pg_toast

bonjour,

d'où vient cette limite de 2Ko ? est-ce un paramètre modifiable ?
en faisant un classement des tables les plus grosses de ma base, je vois 2 pgtoast_XXXX. est-ce normal d'en avoir deux ?
la taille a-t-elle une influence sur la performance ? la mienne fait 2500 en relpages (obtenu par SELECT relname, relpages FROM pg_class ORDER BY relpages DESC limit 50; )

Hors ligne

#6 22/07/2011 10:27:20

gleu
Administrateur

Re : pg_toast

2500 pour relpages, c'est rien en soi. Ce sont des blocs de 8 Ko, donc 20 Mo. Vraiment rien.


Guillaume.

Hors ligne

#7 22/07/2011 10:29:34

Michael REMY
Membre

Re : pg_toast

merci Gleu de ta réponse.

et le fait que j'en ai deux dans ma base ? je sais qu'une restauration a été faite l'année dernière...

Hors ligne

#8 22/07/2011 10:51:39

cedric
Membre

Re : pg_toast

Michael REMY a écrit :

merci Gleu de ta réponse.

et le fait que j'en ai deux dans ma base ? je sais qu'une restauration a été faite l'année dernière...

ce n'est pas anormal, l'intéret est le suivant: lors de l'update d'une ligne ayant une partie en table TOAST, la partie dans la table toast n'est pas modifiée (sauf si le contenu des données dans cette table change bien sur).


Cédric Villemain +33 (0)6 20 30 22 52
http://2ndQuadrant.fr/
PostgreSQL: Support 24x7 - Développement, Expertise et Formation

Hors ligne

Pied de page des forums