PostgreSQL并行计算算法及参数强制并行度设置方法

PostgreSQL并行计算算法及参数强制并行度设置方法

目录

一、优化器并行计算的并行度计算方法

二、优化器是否选择并行计算

三、优化器是否忽略并行计算

四、优化器强制选择并行计算参数

五、并行计算相关参数

六、强行并行

七、函数并行

一、优化器并行计算的并行度计算方法

1、总worker进程数

postgres=# show ; max_worker_processes ---------------------- 128 (1 row)

2、所有会话,在同一时刻的QUERY,并行计算最大允许开启的WORKER数。

max_parallel_workers

3、单条QUERY中,每个node最多允许开启的并行计算WORKER数

postgres=# show max_parallel_workers_per_gather ; max_parallel_workers_per_gather --------------------------------- 0 (1 row)

4、单个query, node的并行度

Min(parallel_workers(表级设置,没有设置则,根据表大小计算得到), max_parallel_workers_per_gather)

5、表级并行度参数,默认不设置,从表大小计算。

postgres=# alter table pa set (parallel_workers =32); ALTER TABLE

6、真实并行度算法

min (max_worker_processes - 已运行workers , max_parallel_workers - 其他会话当前真实启用的并行度 , Min(parallel_workers(表级设置,没有设置则,根据表大小计算得到), max_parallel_workers_per_gather) ) 二、优化器是否选择并行计算

优化器是否使用并行计算,取决于CBO,选择成本最低的方法,并行计算成本估算,成本因子参数如下:

postgres=# show parallel_tuple_cost ; parallel_tuple_cost --------------------- 0 (1 row) postgres=# show parallel_setup_cost ; parallel_setup_cost --------------------- 0 (1 row)

如果非并行计算的执行计划成本低于并行计算的成本,则不使用并行计算。

三、优化器是否忽略并行计算

如果表扫描或索引扫描的表或索引低于设置的阈值,这个表扫描或索引扫描则不启用并行计算。

postgres=# show min_parallel_table_scan_size ; min_parallel_table_scan_size ------------------------------ 0 (1 row) postgres=# show min_parallel_index_scan_size ; min_parallel_index_scan_size ------------------------------ 0 (1 row) 四、优化器强制选择并行计算参数 #force_parallel_mode = on 五、并行计算相关参数

1、创建索引,CREATE TABLE AS,SELECT INTO 的并行度

postgres=# show max_parallel_maintenance_workers ; max_parallel_maintenance_workers ---------------------------------- 24 (1 row)

2、并行分区表JOIN

#enable_partitionwise_join = on

3、并行分区表分区聚合

#enable_partitionwise_aggregate = on

4、并行HASH计算

#enable_parallel_hash = on

5、LEADER主动获取并行WORKER的返回结果

parallel_leader_participation = on

6、并行APPEND(分区表),UNION ALL查询

#enable_parallel_append = on 六、强行并行

强制并行度24

1、总的可开启的WORKER足够大 postgres=# show max_worker_processes ; max_worker_processes ---------------------- 128 (1 row) 2、所有会话同时执行并行计算的并行度足够大 postgres=# set max_parallel_workers=64; SET 3、单个QUERY中并行计算NODE开启的WORKER=24 postgres=# set max_parallel_workers_per_gather =24; 4、所有表和索引扫描允许并行 postgres=# set min_parallel_table_scan_size =0; postgres=# set min_parallel_index_scan_size =0; 5、并行计算优化器成本设置为0 postgres=# set parallel_tuple_cost =0; postgres=# set parallel_setup_cost =0; 6、设置表级并行度为24 postgres=# alter table pa set (parallel_workers =24); ALTER TABLE 7、效果,强制24并行。 postgres=# explain (analyze) select count(*) from pa; QUERY PLAN ------------------------------------------------------------------------------------------------------------------------------------- Finalize Aggregate (cost=1615.89..1615.89 rows=1 width=8) (actual time=81.711..81.711 rows=1 loops=1) -> Gather (cost=1615.83..1615.83 rows=24 width=8) (actual time=81.572..90.278 rows=25 loops=1) Workers Planned: 24 Workers Launched: 24 -> Partial Aggregate (cost=1615.83..1615.83 rows=1 width=8) (actual time=58.411..58.411 rows=1 loops=25) -> Parallel Seq Scan on pa (cost=0.00..712.71 rows=416667 width=0) (actual time=0.012..35.428 rows=400000 loops=25) Planning Time: 0.449 ms Execution Time: 90.335 ms (8 rows) 七、函数并行

1、并行函数

create or replace function ftest(int) returns boolean as $$ select $1<1000; $$ language sql strict parallel safe; -- parallel safe 语法

2、并行聚合函数

combinefunc

到此这篇关于PostgreSQL 并行计算算法,参数,强制并行度设置的文章就介绍到这了,更多相关PostgreSQL 并行计算算法内容请搜索易知道(ezd.cc)以前的文章或继续浏览下面的相关文章希望大家以后多多支持易知道(ezd.cc)!

推荐阅读

    opporeno8参数配置及价格

    opporeno8参数配置及价格,面部,亿元,Oppo的荣誉2020年1月4日,接近屏幕关闭传感器是否支持双卡:支持oppor11splus什么时候上市的Oppo R11S P

    3500元超额值学生娱乐结构的优化配置

    3500元超额值学生娱乐结构的优化配置,,作为一个DIY的主流用户领域的学生,每个用户51学生攒机的高峰。因为学生用户没有稳定的收入来源,攒机

    优化PostgreSQL中的批量更新性能

    优化PostgreSQL中的批量更新性能,数据,表格,在Ubuntu 12.04上使用PG 9.1. 我们目前需要24小时才能运行大量UPDATE数据库上的语句,其形式

    魅蓝note6性能参数有哪些

    魅蓝note6性能参数有哪些,摄像头,蓝牙,魅蓝note6性能参数有哪些魅力蓝色Note6最好拍照。电池寿命更长。蓝色Note6使用高通 snapdragon 625

    512内存的电脑优化|笔记本内存512

    512内存的电脑优化|笔记本内存512,,1. 笔记本内存512够用,因为运行非常流畅,苹果笔记本 16g512的运行内存是16g内存,机身内存是512g内存,运行

    设置总账参数|用友u8设置总账参数

    设置总账参数|用友u8设置总账参数,,1. 用友u8设置总账参数1、首先要点开数据权限控制设置;2、选择想要设置控制的单据;3、打开后看到左上角

    Windows7下固态硬盘的优化技术

    Windows7下固态硬盘的优化技术,,当微软开发Windows Vista时,固态硬盘没有那么热,所以没有进行优化。Windows 7是不同的。微软从一开始就把SS

    csgo参数设置|csgo怎么保存

    csgo参数设置|csgo怎么保存,,csgo怎么保存第一步下载csgo的官方版本。然后再下载一个5e对战平台,PS:5e的账号和csgo的账号不是一个账号。第

    移动apn设置|移动apn设置参数

    移动apn设置|移动apn设置参数,,移动apn设置参数1、打开手机系统设置界面应用,点击页面中的“移动网络”设置选项。2、进入移动网络设置页面