Thanks Tom, when you say, > An entirely blue-sky guess as > to what your code might be doing to trigger such a problem is if you > were constantly replacing the same function's definition via CREATE OR > REPLACE FUNCTION. > Do you mean that what would happen is that when we call the plpgsql function, it executes each time a create or replace, then execute the function ? because my functions are all written like that :
-- Function: spzoneinsert(integer, integer) > CREATE OR REPLACE FUNCTION spzoneinsert(i_zoneid integer, i_output_port > integer) > RETURNS void AS > $BODY$ > > BEGIN > Begin > INSERT INTO zone > (zone_Id, > output_port) > VALUES > (i_zoneID, > i_Output_Port); > End; > END; > $BODY$ > LANGUAGE 'plpgsql' VOLATILE > COST 100; > ALTER FUNCTION spzoneinsert(integer, integer) OWNER TO db_casd_admin_role; > GRANT EXECUTE ON FUNCTION spzoneinsert(integer, integer) TO > db_casd_admin_role; > Which is suppose is the normal way to write a function. I assume only the partr between the $BODY$ are executed. then this is called via ADODB in our C++ softwares. I will try to run a DB without its client softwares, just both DBs with rubyrep and a BAT script doing updates using one of my functions call at a quicker rate than 2Hz. and'll monitor the memory usage and PG logs Vincent. On Tue, May 22, 2012 at 2:30 PM, Tom Lane <t...@sss.pgh.pa.us> wrote: > Vincent Dautremont <vinc...@searidgetech.com> writes: > > I think that i'm using the database for pretty basic stuffs. > > It's mostly used with stored procedures to update/ insert / select a row > of > > each table. > > On 3 tables (less than 10 rows each), clients does updates/select at 2Hz > to > > have pseudo real-time data up to date. > > I've got a total of 6 clients to the DB, they all access DB using stored > > procedures > > I would say that this is a light usage of the DB. > > > Then I have rubyrep 1.2.0 running to sync a backup of the DB. > > it syncs 8 tables : 7 of them doesn't really change often and 1 is one of > > the pseudo real-time data one. > > This is not much information. What I suspect is happening is that > you're using plpgsql functions (or some other PL) in such a way that the > system is leaking cached plans for the functions' queries; but there is > far from enough evidence here to prove or disprove that, let alone debug > the problem if that is a correct guess. An entirely blue-sky guess as > to what your code might be doing to trigger such a problem is if you > were constantly replacing the same function's definition via CREATE OR > REPLACE FUNCTION. But that could be totally wrong, too. > > Can you put together a self-contained test case that triggers similar > growth in the server process size? > > regards, tom lane >