> > In most cases you're going to see extremely few reads compared to > > writes on pg_stats, right? So why not have the backends > connect to the > > stats process (or perhaps use UDP, or use the pipe, or > whatever) and > > fetch the data when needed. So when nobody fetches any > data, there is > > no overhead (except for the stats process adding up values, > of course). > > That's a thought. You'd still want the stats file to > preserve the data across shutdowns, but the update rate could > be far slower, maybe once every few minutes. The other nice > thing is that when you do want the stats, you could get > current values, not half-a-second-behind values.
Exactly. For those who care a lot about their stats data, we could offer a config parameter for how often to write out the stats file. > > Then you could also push down some filtering to the stats process - > > for example, when you are reading from pg_stat_activity there is no > > need to send over the row level stats. IIRC, today you have to read > > (and write) the whole stats file anyways. > > No; the current behavior of grabbing a snapshot of the whole > stats dataset is a feature, not a bug. It lets you sit there > and correlate the data using multiple queries, without > worrying that the numbers are changing under you. We'd lose > this ability if the data had to be re-fetched for each query > because we didn't grab it all. Oh. Good point. Didn't even know we had that feature, but now that I do I see it's a good one :-) //Magnus ---------------------------(end of broadcast)--------------------------- TIP 4: Have you searched our list archives? http://archives.postgresql.org