81 lines
2.8 KiB
Plaintext
81 lines
2.8 KiB
Plaintext
--
|
|
-- PARALLEL
|
|
--
|
|
begin;
|
|
-- 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 eligible
|
|
-- 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);
|
|
create unique index on parallel_mat_view(length);
|
|
refresh materialized view parallel_mat_view;
|
|
refresh materialized view concurrently parallel_mat_view;
|
|
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;
|