Hi: Now the situation goes there: In the testing environment, even when my customer changed shared_buffers from 1024MB to 712MB or 512MB, The total memory consumption is still almost the same.
I think that PG is always using as much resource as it can, For a query and insert action, Firstly , the data is pull into private memory of the backend process which is service client. Then, the backend process push the data into shared memory, here into shared_buffers. If the shared_buffers is not big enough to hold all the result data, then part of data will be in shared_buffer, the other data will still remain in backend process's memory. Is my understanding right? Best Regard 2013/8/27 Jeff Janes <jeff.ja...@gmail.com> > On Sun, Aug 25, 2013 at 11:08 PM, 高健 <luckyjack...@gmail.com> wrote: > > Hello: > > > > Sorry for disturbing. > > > > I am now encountering a serious problem: memory is not enough. > > > > My customer reported that when they run a program they found the totall > > memory and disk i/o usage all reached to threshold value(80%). > > > > That program is written by Java. > > It is to use JDBC to pull out data from DB, while the query joined some > > table together, It will return about 3000,000 records. > > Then the program will use JDBC again to write the records row by row , > to > > inert into another table in the DB. > > What is using the memory, the postgres backend or the client program? > > Cheers, > > Jeff >