并行查询配置参数说明

本章节介绍了并行查询功能相关的参数和变量。

并行查询相关参数

表 1. 系统参数

参数名

级别

描述

max_parallel_degree

Global、Session

单个查询的最大并行度,即并行执行的最大Worker数量。

  • 取值范围:[0-1024];

  • 默认值:0,表示关闭并行查询。

说明

PolarDB优化器可能会对主查询和子查询分别并行执行,如果同时并行执行,它们的最大Worker数不能超过max_parallel_degree的值,整个查询使用的Worker数为主查询和子查询使用的Worker数之和。

parallel_degree_policy

Global

设置单个查询的并行度配置策略,取值范围如下:

  • TYPICALPolarDB选择查询并行度时不会考虑数据库负载(如CPU使用率等),而尽可能与max_parallel_degree设置的并行度保持一致。

  • AUTOPolarDB会根据数据库负载(如CPU使用率等)来决定是否禁止并行查询计划,并会根据查询代价选择并行度。

  • REPLICA_AUTO(默认):仅只读节点会根据数据库负载(如CPU使用率等)决定是否禁止并行查询计划,并会根据查询代价选择并行度,而主节点不会开启并行查询。

说明

更多关于并行度配置策略的详细介绍,请参见并行资源控制策略配置

parallel_workers_policy

session

弹性并行策略:

  • LOCAL:节点内并行,即单机并行。

  • AUTO:开启弹性并行,会根据集群分组内节点的实时负载信息做调度,本地节点计算资源不足时,会尝试选择其它有空闲资源的节点调度执行。查询代价超过阈值后选择多机并行。

  • MULTI_NODES:强制多机并行,最大并行度会随节点数增加而成倍增加,适用于海量数据的分析类大查询。

records_threshold_for_parallelism

Session

若优化器估算出语句中存在扫描记录数超过该阈值的表,优化器会考虑选择并行执行计划。

  • 取值范围:[0-18446744073709551615];

  • 默认值:10000。

说明

若您的业务量较小或复杂查询业务并发较低,您可以选择将该阈值设置为2000或以上。

cost_threshold_for_parallelism

Session

若优化器估算查询的串行执行代价超过该阈值,优化器会考虑选择并行执行计划。

  • 取值范围:[0-18446744073709551615];

  • 默认值:50000。

records_threshold_for_mpp

session

查询语句中表扫描行数超过该阈值后,优化器会考虑选择多机并行执行方式。

  • 取值范围:[0-18446744073709551615];

  • 默认为0,含义是自动取值records_threshold_for_parallelism的N倍,N为ePQ集群的节点个数

cost_threshold_for_mpp

session

查询语句的串行执行代价超过该阈值后,优化器会考虑选择多机并行执行方式。

  • 取值范围:[0-18446744073709551615];

  • 默认值为0,含义是自动取值cost_threshold_for_parallelism的N倍,N为节点个数

并行查询相关变量

表 2. 状态变量

变量名

级别

描述

Parallel_workers_created

Session、Global

从Session启动开始,生成Parallel Worker的个数。

Gather_records

Session、Global

Gather记录总数。

PQ_refused_over_total_workers

Session、Global

由于总Worker数限制没有启用并行的查询数。

PQ_refused_over_max_queuing_time

Session、Global

由于并行查询排队超时没有启动并行的查询数。

Total_running_parallel_workers

Global

当前正在运行的Parallel Worker的数目。