80 lines
2.8 KiB
Plaintext
80 lines
2.8 KiB
Plaintext
|
--
|
||
|
-- PARALLEL
|
||
|
--
|
||
|
-- Serializable isolation would disable parallel query, so explicitly use an
|
||
|
-- arbitrary other level.
|
||
|
begin isolation level repeatable read;
|
||
|
-- encourage use of parallel plans
|
||
|
set parallel_setup_cost=0;
|
||
|
set parallel_tuple_cost=0;
|
||
|
set min_parallel_table_scan_size=0;
|
||
|
set max_parallel_workers_per_gather=4;
|
||
|
--
|
||
|
-- Test write operations that has an underlying query that is eligble
|
||
|
-- for parallel plans
|
||
|
--
|
||
|
explain (costs off) create table parallel_write as
|
||
|
select length(stringu1) from tenk1 group by length(stringu1);
|
||
|
QUERY PLAN
|
||
|
---------------------------------------------------
|
||
|
Finalize HashAggregate
|
||
|
Group Key: (length((stringu1)::text))
|
||
|
-> Gather
|
||
|
Workers Planned: 4
|
||
|
-> Partial HashAggregate
|
||
|
Group Key: length((stringu1)::text)
|
||
|
-> Parallel Seq Scan on tenk1
|
||
|
(7 rows)
|
||
|
|
||
|
create table parallel_write as
|
||
|
select length(stringu1) from tenk1 group by length(stringu1);
|
||
|
drop table parallel_write;
|
||
|
explain (costs off) select length(stringu1) into parallel_write
|
||
|
from tenk1 group by length(stringu1);
|
||
|
QUERY PLAN
|
||
|
---------------------------------------------------
|
||
|
Finalize HashAggregate
|
||
|
Group Key: (length((stringu1)::text))
|
||
|
-> Gather
|
||
|
Workers Planned: 4
|
||
|
-> Partial HashAggregate
|
||
|
Group Key: length((stringu1)::text)
|
||
|
-> Parallel Seq Scan on tenk1
|
||
|
(7 rows)
|
||
|
|
||
|
select length(stringu1) into parallel_write
|
||
|
from tenk1 group by length(stringu1);
|
||
|
drop table parallel_write;
|
||
|
explain (costs off) create materialized view parallel_mat_view as
|
||
|
select length(stringu1) from tenk1 group by length(stringu1);
|
||
|
QUERY PLAN
|
||
|
---------------------------------------------------
|
||
|
Finalize HashAggregate
|
||
|
Group Key: (length((stringu1)::text))
|
||
|
-> Gather
|
||
|
Workers Planned: 4
|
||
|
-> Partial HashAggregate
|
||
|
Group Key: length((stringu1)::text)
|
||
|
-> Parallel Seq Scan on tenk1
|
||
|
(7 rows)
|
||
|
|
||
|
create materialized view parallel_mat_view as
|
||
|
select length(stringu1) from tenk1 group by length(stringu1);
|
||
|
drop materialized view parallel_mat_view;
|
||
|
prepare prep_stmt as select length(stringu1) from tenk1 group by length(stringu1);
|
||
|
explain (costs off) create table parallel_write as execute prep_stmt;
|
||
|
QUERY PLAN
|
||
|
---------------------------------------------------
|
||
|
Finalize HashAggregate
|
||
|
Group Key: (length((stringu1)::text))
|
||
|
-> Gather
|
||
|
Workers Planned: 4
|
||
|
-> Partial HashAggregate
|
||
|
Group Key: length((stringu1)::text)
|
||
|
-> Parallel Seq Scan on tenk1
|
||
|
(7 rows)
|
||
|
|
||
|
create table parallel_write as execute prep_stmt;
|
||
|
drop table parallel_write;
|
||
|
rollback;
|