支持并行哈希连接
功能描述
支持并行哈希连接是利用多核CPU的并行处理,将一个生成哈希连接的执行计划由多个Worker执行。一个表连接语句规划器会生成哈希连接计划,并行哈希连接功能是执行器在执行时,将哈希连接的操作由多个Worker并行执行完成。
参数说明
- enable_nestloop:嵌套循环查询开关。
示例
创建三张表
create table t1(a int,b int,c int,d bigint);
create table t2(a int,b int);
create table t3(a int,b int,c int);
插入数据
insert into t1 values
(generate_series(1,100),generate_series(1,10),generate_series(1,2),generate_series(1,50));
insert into t2 values(generate_series(1,100),generate_series(1,30));
insert into t3 values(generate_series(1,50),generate_series(1,100),generate_series(1,10));
analyze t1;
analyze t2;
analyze t3;
设置算子并行度和连接开关:
set query_drop=2;
set enable_nestloop=on;
set enable_hashjoin=on;
打印并行哈希连接查询计划
explain (costs off) select t1.a,t2.b,t3.c from t1,t2,t3 where t1.a=t2.a and t1.b=t3.c order by 1,2,3;