Обсуждение: Parallel Aware
Hi,
I'm trying to run my query in parallel mode. I have setup my tables with " WITH(parallel_workers=2)" storage parameter and I've created indexes for needed attributes.
I have also set:
max_worker_processes = 100
max_parallel_workers_per_gather = 2
max_parallel_workers = 100
max_worker_processes = 100
max_parallel_workers_per_gather = 2
max_parallel_workers = 100
However, when I uses EXPLAIN to check the query plan, all of the nodes are set to "Parallel Aware"=false. Am I missing something?
Here is my tables and indexes:
CREATE TABLE t1(id int PRIMARY KEY, name varchar(200)) WITH(parallel_workers=2);
CREATE TABLE t2(id int PRIMARY KEY, fid int, value varchar(200)) WITH(parallel_workers=2);
CREATE INDEX ind_t1_id ON t1 USING HASH (id);
CREATE INDEX ind_t2_fid ON t2 USING HASH (fid);
CREATE TABLE t1(id int PRIMARY KEY, name varchar(200)) WITH(parallel_workers=2);
CREATE TABLE t2(id int PRIMARY KEY, fid int, value varchar(200)) WITH(parallel_workers=2);
CREATE INDEX ind_t1_id ON t1 USING HASH (id);
CREATE INDEX ind_t2_fid ON t2 USING HASH (fid);
You're not alone - I have the same issue on PostgreSQL 10.3, even with "force_parallel_mode" enabled and a query plan that includes bitmap heap scans (which should be parallelizable). -- Sent from: http://www.postgresql-archive.org/PostgreSQL-general-f1843780.html
On Tue, Feb 27, 2018 at 1:15 AM, Marwan Almaymoni <marwan.mmm@gmail.com> wrote: > Hi, > > I'm trying to run my query in parallel mode. I have setup my tables with " > WITH(parallel_workers=2)" storage parameter and I've created indexes for > needed attributes. > I have also set: > max_worker_processes = 100 > max_parallel_workers_per_gather = 2 > max_parallel_workers = 100 > > However, when I uses EXPLAIN to check the query plan, all of the nodes are > set to "Parallel Aware"=false. Am I missing something? > > Here is my tables and indexes: > CREATE TABLE t1(id int PRIMARY KEY, name varchar(200)) > WITH(parallel_workers=2); > CREATE TABLE t2(id int PRIMARY KEY, fid int, value varchar(200)) > WITH(parallel_workers=2); > CREATE INDEX ind_t1_id ON t1 USING HASH (id); > CREATE INDEX ind_t2_fid ON t2 USING HASH (fid); > Parallel index scans/bitmap heap scans are only supported for btree indexes. > Here's the query I tested with EXPLAIN: > SELECT * FROM t1 INNER JOIN t2 ON t1.id = t2.fid WHERE t1.id > 100; > -- Regards, Rafia Sabih EnterpriseDB: http://www.enterprisedb.com/