28.07.10 04:56, Tom Lane написав(ла):
> I'm not asserting it's true, just suggesting it's entirely possible.
> Other than the fork() cost itself and whatever authentication activity
> there might be, practically all the startup cost of a new backend can be
> seen as cache-populating activities. You'd have to redo all of that,
> *plus* pay the costs of getting rid of the previous cache entries.
> Maybe the latter costs less than a fork(), or maybe not. fork() is
> pretty cheap on modern Unixen.
Actually as for me, the problem is that one can't raise number of
database connections high without overloading CPU/memory/disk, so
external pooling is needed. If postgresql had something like
max_active_queries setting that limit number of connections that are not
in IDLE [in transaction] state, one could raise max connections high
(and I don't think idle process itself has much overhead) and limit
max_active_queries to get maximum performance and won't use external
pooling. Of course this won't help if the numbers are really high, but
could work out the most common cases.
Best regards, Vitalii Tymchyshyn
In response to
pgsql-performance by date
|Next:||From: Vitalii Tymchyshyn||Date: 2010-07-28 11:07:08|
|Subject: Re: Big difference in time returned by EXPLAIN ANALYZE
SELECT ... AND SELECT ...|
|Previous:||From: Andres Freund||Date: 2010-07-28 10:49:34|
|Subject: Re: 158x query improvement when removing 2 (noop) WHERE conditions|