Re: How to run in parallel in Postgres

Поиск
Список
Период
Сортировка
От Justin Pryzby
Тема Re: How to run in parallel in Postgres
Дата
Msg-id 20191207012521.GU2082@telsasoft.com
обсуждение исходный текст
Ответ на How to run in parallel in Postgres  (Lars Aksel Opsahl <Lars.Opsahl@nibio.no>)
Ответы Re: How to run in parallel in Postgres  (Lars Aksel Opsahl <Lars.Opsahl@nibio.no>)
Список pgsql-performance
On Thu, Dec 05, 2019 at 12:10:42PM +0000, Lars Aksel Opsahl wrote:
> I have a function that prepares data, so the big job can be run it in parallel.
> 
> Since Postgres now supports parallel I was wondering if it's easy to trigger parallel dynamically created SQL calls.
> 
> If you look at
https://github.com/larsop/find-overlap-and-gap/blob/master/src/test/sql/regress/find_overlap_and_gap.sql you see that
 
> 
> find_overlap_gap_make_run_cmd generates as set of 28 sql calls.
>
> So is it in a simple way possible to use Postgres parallel functionality to call this 28 functions i parallel so I
don'thave dependent on externally install programs  ?
 

SELECT
find_overlap_gap_single_cell('test_data.overlap_gap_input_t1','geom',4258,'test_data.overlap_gap_input_t1_res',1,28);
SELECT
find_overlap_gap_single_cell('test_data.overlap_gap_input_t1','geom',4258,'test_data.overlap_gap_input_t1_res',2,28);
SELECT
find_overlap_gap_single_cell('test_data.overlap_gap_input_t1','geom',4258,'test_data.overlap_gap_input_t1_res',3,28);
...

I see that find_overlap_gap_single_cell creates tables, so cannot be run in parallel.
Maybe you could consider rewriting it to return data to its caller instead.
You'd also need to mark it as PARALLEL SAFE, of course.
Your other functions involved should be PARALLEL SAFE too.

Justin



В списке pgsql-performance по дате отправления:

Предыдущее
От: Ondrej Ivanič
Дата:
Сообщение: Re: How to run in parallel in Postgres
Следующее
От: Lars Aksel Opsahl
Дата:
Сообщение: Re: How to run in parallel in Postgres