TDSQL Boundless 并行查询系统变量

这篇集中列出 TDSQL Boundless 并行查询相关的系统变量。术语定义并行查询默认关闭,可通过设置 max_parallel_degree 大于0开启,或使用 PARALLEL HINT 在单条 SQL 内启用。完整 HINT 语法。

相关产品
TDSQL Boundless 产品页,含版本规格、价格与购买入口。

一、并行度控制

TDSQL Boundless 中使用 DOP(Degree Of Parallelism)表示并行度,即查询中使用的并行 Worker 数量。TDSQL Boundless 目前支持手动设置并行度与 自适应并行 两种并行度控制策略。

变量名 级别 默认值 说明
max_parallel_degree SESSION 0 单条查询的最大 DOP。设为0关闭并行;大于0表示开启。在开启了 自适应并行 时,如果 parallel_degree_policy 为 MANUAL 模式(手动设置并行度),该值表示查询的默认 DOP;如果 parallel_degree_policy 为 AUTO 模式(自动设置并行度),该值表示自动设置的 DOP 上限
max_parallel_workers GLOBAL 10000 整个节点并行 Worker 总数上限。设为0全局禁用并行

二、阈值控制

变量名 级别 默认值 说明
parallel_plan_cost_threshold SESSION 50000 串行代价大于或等于该值才考虑生成并行计划
parallel_scan_records_threshold SESSION 10000 表预估访问行数大于或等于该值才将该表纳入并行扫描候选
parallel_scan_ranges_threshold SESSION 2 预估可切分范围数大于或等于该值才使用并行扫描
parallel_scan_cost_threshold SESSION 10000.0 并行扫描代价门控

三、并行度控制策略

变量名 级别 默认值 说明
parallel_degree_policy SESSION MANUAL DOP 策略:MANUAL 使用 max_parallel_degree 作为固定 DOP;AUTO 由优化器基于扫描代价自动计算 DOP
parallel_plan_compare_serial_cost SESSION false 该值为真时,如果原始串行计划比并行计划代价更低,则此时会走串行计划;否则,默认会走代价最低的并行计划

四、功能开关

变量名 级别 默认值 说明
parallel_query_switch SESSION 见下表 并行查询功能位掩码总开关,详细默认值见下方。该选项为开发者选项,请勿在生产环境使用
tdsql_enable_parallel_hash_join SESSION false 开启并行 Hash Join,允许优化器为合适的 JOIN 选择并行 Hash Join,详细参考 并行 Hash Join
single_delete_update_use_iterator SESSION false 单表 UPDATE / DELETE 是否使用算子执行模型,并行 DML 必须开启,详细参考 并行 DML

其中,parallel_query_switch 选项表及默认值如下:

选项 默认 说明
force off 强制使用并行计划,跳过代价与行数阈值检查
subquery_pushdown on 允许子查询完整下推到 Worker 并行执行
subquery_pre_evaluation on 允许 Leader 预先执行可缓存的子查询并缓存结果供 Worker 复用
full_grouping_pushdown on 当 Worker 间 GROUP BY 键值不重复时,将聚合完全下推到 Worker
maximum_slices off 选优时偏好 Collector 最多的路径(最大化 Slice 数)
group_min_max_pushdown on 支持 GROUP MIN MAX SCAN 使用并行计划
partition_group_min_max_pushdown on 支持分区表上的 GROUP MIN MAX SCAN 使用并行计划
dynamic_range_parallel_scan on 允许动态范围并行扫描
partition_parallel_scan on 允许分区并行扫描
rep_group_parallel_scan off 以 Replication Group 为最小分配单位,同一 Replication Group 的全部数据交给同一个并行 Worker

注意:警告:

注意:parallel_query_switch 是一个开发者选项。每个发布都可能调整开关的内容(包括添加或删除),请勿在管理工具或正规的维护脚本中使用。

五、使用方式

通用 SQL 语法示例:

— 查看当前开关值SHOW VARIABLES LIKE 'parallel_query_switch';– 强制并行(跳过所有阈值检查)SET parallel_query_switch = 'force=on';– 关闭子查询下推到 Worker 执行SET parallel_query_switch = 'subquery_pushdown=off';

赞 (0)
上一篇 4天前
下一篇 4天前