pá 2. 6. 2023 v 3:45 odesílatel James Pang (chaolpan) <chaol...@cisco.com> napsal:
> these lines about "SPI Plan" are these PL/PGSQL functions related > SPI_prepare plan entry, right? Possible to set a GUC to max(cached plan) > per backend ? > There is no limit for size of system cache. You can use pgbouncer that implicitly refresh session after 1 hour (and this limit can be reduced) Regards Pavel > > SPI Plan: 1024 total in 1 blocks; 600 free (0 chunks); 424 used > CachedPlan: 2048 total in 2 blocks; 304 free (1 chunks); 1744 used: > xxxxxxx > CachedPlanSource: 2048 total in 2 blocks; 200 free (0 chunks); 1848 > used: xxxxxxx > CachedPlanQuery: 2048 total in 2 blocks; 704 free (0 chunks); 1344 > used > > Thanks, > > James > > -----Original Message----- > From: Laurenz Albe <laurenz.a...@cybertec.at> > Sent: Thursday, June 1, 2023 8:48 PM > To: James Pang (chaolpan) <chaol...@cisco.com>; Pavel Stehule < > pavel.steh...@gmail.com> > Cc: pgsql-performance@lists.postgresql.org > Subject: Re: thousands of CachedPlan entry per backend > > On Thu, 2023-06-01 at 08:50 +0000, James Pang (chaolpan) wrote: > > we found thousands of cached plan , since JDBC driver only allow max > > 256 cached prepared statements, how backend cache so many sql plans. > > If we have one function, when application call that function will make > > backend to cache every SQL statement plan in that function too? and > for table triggers, have similar caching behavior ? > > Yes, as long as the functions are written in PL/pgSQL. > It only affects static SQL, that is, nothing that is run with EXECUTE. > > Yours, > Laurenz Albe >