cpu-intensive immutable function and parallel scan

From: Niels Jespersen <NJN(at)dst(dot)dk>
To: "pgsql-general(at)lists(dot)postgresql(dot)org" <pgsql-general(at)lists(dot)postgresql(dot)org>
Subject: cpu-intensive immutable function and parallel scan
Date: 2021-06-22 07:06:10
Message-ID: c800b7a24a95419aaebf4e6ec31d8f57@dst.dk
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

Hello all

I have a cpu-intensive plpython3u function that computes a result on the value from a single column value from a simple select.This looks largely like this.

select function_name (t1.val1, 'constant1') from t1 where t1.p = '202012_1' and t1.val1 is not null;

The function is marked immutable and parallel safe.

The time spent in the function is quite substantial. The same execution plan for a query that invokes the funtion and a query that does not results in a 15-times slowdown. Explain analyze show that both queries use 5 parallel workers.

I think I could achieve some speedup by parallelizing further, distributing the cpu-work among additional workers. But, how do I achive that best?

In Oracle I would either use a parallel-hint or an alter session force parallel query parallel 8.

Regards Niels

Responses

Browse pgsql-general by date

  From Date Subject
Next Message David Rowley 2021-06-22 07:09:50 Re: cpu-intensive immutable function and parallel scan
Previous Message Stephan Knauss 2021-06-22 05:58:02 Re: Psql wants to use IP6 when connecting to self using tcp...