Vous n'êtes pas identifié(e).
- Contributions : Récentes | Sans réponse
#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
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