Vous n'êtes pas identifié(e).
- Contributions : Récentes | Sans réponse
Pages : 1
#1 08/07/2011 09:07:09
- arthurr
- Membre
pg_temp et pg_toast_temp
Bonjour,
Je viens de remarquer qu'un de mes cluster génère une grande quantité de pg_toast_temp et de pg_temp.
J'ai loggé les DDL pour surveiller la création des tables temporaires. Un soft seulement utilise des tables temporaires, il se connecte toutes les minutes, créé une TEMP TABLE, travaille, et se déconnecte (sans dropper la table temporaire mais ca ne doit pas poser de soucis).
en psql :
arthurr=# \dn
List of schemas
Name | Owner
--------------------+----------
information_schema | postgres
pg_catalog | postgres
pg_toast | postgres
pg_toast_temp_10 | postgres
pg_toast_temp_14 | postgres
pg_toast_temp_16 | postgres
pg_toast_temp_17 | postgres
pg_toast_temp_18 | postgres
pg_toast_temp_19 | postgres
pg_toast_temp_20 | postgres
pg_toast_temp_21 | postgres
pg_toast_temp_22 | postgres
pg_toast_temp_23 | postgres
pg_toast_temp_24 | postgres
pg_toast_temp_25 | postgres
pg_toast_temp_26 | postgres
pg_toast_temp_27 | postgres
pg_toast_temp_28 | postgres
pg_toast_temp_29 | postgres
pg_toast_temp_30 | postgres
pg_toast_temp_31 | postgres
pg_toast_temp_33 | postgres
pg_toast_temp_34 | postgres
pg_toast_temp_35 | postgres
pg_toast_temp_37 | postgres
pg_toast_temp_4 | postgres
pg_toast_temp_44 | postgres
pg_toast_temp_5 | postgres
public | postgres
(29 rows)
arthurr=# select * from pg_tables where tablename like 'pg_temp%';
schemaname | tablename | tableowner | tablespace | hasindexes | hasrules | hastriggers
------------+-----------+------------+------------+------------+----------+-------------
(0 rows)
arthurr=# select * from pg_namespace where nspname like 'pg%temp%';
nspname | nspowner | nspacl
------------------+----------+--------
pg_temp_1 | 10 |
pg_toast_temp_20 | 10 |
pg_temp_33 | 10 |
pg_toast_temp_14 | 10 |
pg_temp_35 | 10 |
pg_temp_28 | 10 |
pg_toast_temp_17 | 10 |
pg_temp_30 | 10 |
pg_toast_temp_24 | 10 |
pg_temp_12 | 10 |
pg_toast_temp_35 | 10 |
pg_temp_11 | 10 |
pg_toast_temp_26 | 10 |
pg_temp_16 | 10 |
pg_toast_temp_31 | 10 |
...
...
pg_temp_100 | 10 |
pg_temp_110 | 10 |
pg_toast_temp_18 | 10 |
(131 rows)
Après avoir fouillé sur notre ami google, j'ai trouvé des réponses du genre "Ignore them." (© Tom Lane), mais je trouve ça étrange car je n'avais pas ce comportement avant ...
Qq'un a une explication afin que je puisse dormir tranquillement ?
Merci.
Hors ligne
#2 08/07/2011 09:33:54
- gleu
- Administrateur
Re : pg_temp et pg_toast_temp
il se connecte toutes les minutes, créé une TEMP TABLE, travaille, et se déconnecte (sans dropper la table temporaire mais ca ne doit pas poser de soucis
C'est l'un des intérêts des tables temporaires. À la fin d'une session, les tables temporaires de cette sesson sont supprimées.
Guillaume.
Hors ligne
#3 08/07/2011 09:36:03
- gleu
- Administrateur
Re : pg_temp et pg_toast_temp
Tom a raison (comme très fréquemment).
À chaque fois qu'une session va utiliser des tables temporaires, un schéma temporaire va lui être associé pour la table elle-même et un autre pour la table fille. Rien d'alarmant du tout, c'est juste l'implémentation de PostgreSQL qui est ainsi.
(désolé pour les deux messages qui n'auraient dû en être qu'un seul... j'ai cliqué trop rapidement sur Envoyer)
Guillaume.
Hors ligne
#4 08/07/2011 09:42:07
- arthurr
- Membre
Re : pg_temp et pg_toast_temp
Merci pour ta réponse.
Je ne remets pas en cause Tom Lane (je ne veux pas avoir de problème ! ).
Ce que je trouve surprenant, c'est que le ménage ne soit pas fait dans les schémas et les tables (alors que les sessions ayant fait les tables temporaires sont finies) et que j'ai l'impression que c’était fait avant (peut être une mauvaise impression mais vu la quantité de schémas / tables temporaires qui trainent, je ne vois comment j'ai pu ne pas les remarquer avant)
Hors ligne
#5 08/07/2011 09:43:20
- arthurr
- Membre
Re : pg_temp et pg_toast_temp
je double-post aussi :
ce n'ai pas les tables temporaires qui restent, mais les pg_temp_*
Hors ligne
#6 08/07/2011 10:33:35
- gleu
- Administrateur
Re : pg_temp et pg_toast_temp
Les schémas contenant les tables temporaires finissent aussi par disparaître. Par contre, j'avoue ne pas connaître plus exactement le mécanisme.
Guillaume.
Hors ligne
#7 08/07/2011 10:42:01
- arthurr
- Membre
Re : pg_temp et pg_toast_temp
Dans tous les cas, merci pour ta réponse.
Je vais essayer de trouver plus d'infos, et si je trouve qq chose, je transmets sur le forum.
Hors ligne
#8 10/07/2011 01:14:48
- cedric
- Membre
Re : pg_temp et pg_toast_temp
et que j'ai l'impression que c’était fait avant (peut être une mauvaise impression mais vu la quantité de schémas / tables temporaires qui trainent, je ne vois comment j'ai pu ne pas les remarquer avant)
Quelque chose a changé qui puisse expliquer ce (probable) changement ? (MAJ postgresql, changement dans votre appli, utilisation de pooler de connexion...)
Cédric Villemain +33 (0)6 20 30 22 52
http://2ndQuadrant.fr/
PostgreSQL: Support 24x7 - Développement, Expertise et Formation
Hors ligne
#9 11/07/2011 14:10:11
- arthurr
- Membre
Re : pg_temp et pg_toast_temp
Quelque chose a changé qui puisse expliquer ce (probable) changement ? (MAJ postgresql, changement dans votre appli, utilisation de pooler de connexion...)
A part la mise en place d'un Warm standby : rien de spécial ...
Hors ligne
Pages : 1