首批通过分布式安全可靠测评,为关键业务系统打造
使用 PARALLEL(n) Hint 实际使用的并行线程不符合预期
更新时间:2026-05-15 09:06
适用版本
OceanBase 数据库所有版本。
问题现象
SQL 语句中使用 PARALLEL(16) Hint 期望使用的并行线程数为 16。

但是查询发现实际使用的并行线程数为 3。

并且 SQL 执行的耗时较高。

问题原因
查看系统变量 parallel_servers_target 和 parallel_max_servers,发现变量的值均为 3,两变量默认值均为 0,应该是被主动修改过导致使用 PARALLEL(16) Hint 的最大并行线程数为 3。

变量说明:
parallel_servers_target用于设置每个 Server 上的并行查询排队条件。当多条并行执行(Parallel eXecution,PX)SQL 总计消耗的线程数超过并行查询排队条件后,后继并行执行 SQL 需要排队等待。这个值会在创建租户时自动设定。parallel_max_servers用于设置每台 Server 上并行执行(Parallel eXecution,PX)线程池中的最大线程数。该变量在 V3.x 及之后的版本不再使用。
解决方法
修改这两个变量的值为 32,发现 PARALLEL(16) Hint 生效,执行时间在正常范围。
