暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

【每日分享】2022.08.23 并行查询相关参数

原创 Maleah 2022-08-23
785

PG 并行查询相关参数

1)max_worker_processes

设置系统能够支持的后台进程的最大数量。这个参数只能在服务器启动时设置。默认值 为 8。

如果有备库,备库上此参数必须 >= 主库上此参数的配置值

2)max_parallel_workers

设置系统支持的并行查询进程数。默认值为8

3)max_parallel_workers_per_gather

设置允许启用的并行进程的进程数。默认值为2,0表示禁用并行查询

max_worker_processes > max_parallel_workers > max_parallel_workers_per_gather

4)parallel_setup_cost

设置规划器对启动并行工作者进程的代价估计。默认是 1000。

5)parallel_tuple_cost

设置规划器通过并行进程处理一行数据的代价。默认是 0.1。

6)min_parallel_table_scan_size

设置开启并行的条件之一,表占用空间小于此值将不会开启并行。 对于并行顺序扫描,被扫描的表数据量总是等于表的尺寸,但是在使用索引时,被扫描的表数据量通常会更小。 如果指定值时没有单位,则以块为单位, 即BLCKSZ字节,通常为8kB。默认值是8兆字节(8MB)。

7)min_parallel_index_scan_size

为必须扫描的索引数据量设置一个最小值,扫描的索引数据量超过这一个值时才会考虑使用并行扫描。 注意并行索引扫描通常并不会触及整个索引,它是规划器认为该扫描会 实际用到的相关页面的数量。 如果指定值时没有单位,则以块为单位,即BLCKSZ字节, 通常为8kB。默认值是512千字节(512kB)。

8)force_parallel_mode

强制开启并行。允许为测试目的使用并行查询,即便是并不期望在性能上得到效 益。

force_parallel_mode的允许值:

  • off - 只在期望改进性能时才使用并行模式;
  • on - 只要查询被认为是安全的,就强制使用并行查询;
  • regress - 和on相似, 但是有如下文所解释的额外行为改变。
9)max_parallel_maintenance_workers

设置单一工具性命令能够启动的并行工作者的最大数目。

并行查询进程预估值由参数max_parallel_workers_per_gather控制,并行进程数预估值是指优化器解析 SQL 时执行计划预计会启用的并行进程数,而实际执行查询时的并行进程数受参数 max_parallel_ workers、max_worker_processes 的限制,也就是说 SQL 实际获得的并行进程数不会超过这两个参数设置的值,比如 max_worker_processes 参数设置成 2, max_parallel_ workers _per _gather 参数设置成4,不考虑其他因素的情况下,并行查询实际的并行进程数将会是2;另一方面并行进程数会受 min_parallel_table_scan_size 参数的影响,即表的大小会影响并行进程数。

并行查询执行计划中的 Workers Planned 表示执行计划预估的并行进程数,Worker Launched 表示并行查询实际获得的并行进程数

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

文章被以下合辑收录

评论