Bonjour, j'ai un soucis concernant des insertions dans une table héritée. Je veux insérer d'un coup :
CREATE TRIGGER insert_trigger_temp BEFORE INSERT ON a FOR EACH ROW EXECUTE PROCEDURE public.insert_a();
.. Insetion dans a avec (INSERT INTO a (p1,..,pn) VALUES (v1,..,vn))
;DROP TRIGGER insert_trigger_temp ON a;
Avec un top, je vois que le processus grandit toutes les secondes (de 10Mo à 300Mo) jusqu'à saturation de la mémoire. Y a t'il un moyen de limiter le grossissement mémoire du processus via la configuartion du serveur?
Voici mes parametres:
max_connections = 44
shared_buffers = 256MB
temp_buffers = 32MB
work_mem = 80MB
maintenance_work_mem = 512MB
max_stack_depth = 16MB
max_fsm_pages = 2400160
vacuum_cost_limit = 1000
wal_buffers = 1MB
checkpoint_segments = 32
effective_cache_size = 1GB
constraint_exclusion = on
Postgres 8.2 sur FreeBSD 6.2
4GO de RAM et 4Go de mémoire virtuelle
Table de centaine de millions de ligne (4Go)
Requete sur 100 000 lignes
Je ne comprends même pas comment il peut depasser les 8Go...
Edit:
Le trigger, c'est juste ça:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 OK bool; BEGIN SELECT INTO OK EXISTS(SELECT * FROM a WHERE [... Unicity]); IF( OK)THEN return NULL; ELSE return NEW; END IF; END;
Partager