Re: Parallel query execution with SPI
От | Robert Haas |
---|---|
Тема | Re: Parallel query execution with SPI |
Дата | |
Msg-id | CA+TgmoYOuxRxCWzrmMh8vYy_3a5Ed2AF8Ch7+aGEVTXiZcpPcQ@mail.gmail.com обсуждение исходный текст |
Ответ на | Parallel query execution with SPI (Konstantin Knizhnik <k.knizhnik@postgrespro.ru>) |
Ответы |
Re: Parallel query execution with SPI
|
Список | pgsql-hackers |
On Fri, Mar 31, 2017 at 3:33 AM, Konstantin Knizhnik <k.knizhnik@postgrespro.ru> wrote: > It is possible to execute query concurrently using SPI? > If so, how it can be enforced? > I tried to open cursor with CURSOR_OPT_PARALLEL_OK flag but it doesn't help: > query is executed by single backend while the same query been launched at > top level uses parallel plan: > > fsstate->portal = SPI_cursor_open_with_args(NULL, fsstate->query, > fsstate->numParams, argtypes, values, nulls, true, CURSOR_OPT_PARALLEL_OK); > ... > SPI_cursor_fetch(fsstate->portal, true, 1); Parallel execution isn't possible if you are using a cursor-type interface, because a parallel query can't be suspended and resumed like a non-parallel query. If you use a function that executes the query to completion in one go, like SPI_execute_plan, then it's cool. See also commit 61c2e1a95f94bb904953a6281ce17a18ac38ee6d. -- Robert Haas EnterpriseDB: http://www.enterprisedb.com The Enterprise PostgreSQL Company
В списке pgsql-hackers по дате отправления: