Frits Jalvingh <jal@etc.to> writes:
> As far as that explain thing goes, the odd thing seems to be that /without/
> the explain the database uses a non parallel plan. If I execute the exact
> same statement without explain I see one postgres process running at 100%
> for a long time, then it produces its output proper.
This doesn't prove that the thing is non-parallel, only that the work is
badly distributed. You might try cranking up log_min_messages to the
point that worker-process launching gets logged, and then see whether
or not it's really non-parallel.
> - explain seems to somehow influence the plan that is being made.
That should absolutely *not* be the case.
> - there is a big problem with postgres memory assignment, because with the
> increase of parallelism having work_mem work per process means that you
> cannot effectively control the amount of memory that postgres uses anymore.
work_mem has always been like that. You cannot set it to any very large
fraction of your system's available memory, at least not globally across
a whole bunch of queries.
regards, tom lane