首批通过分布式安全可靠测评,为关键业务系统打造
parallel_servers_target
更新时间:2026-06-10 08:27:48
说明
该变量从 V2.1 版本开始引入。
功能描述
parallel_servers_target 用于设置每个 Server 上的并行查询排队条件。
当多条并行执行(Parallel eXecution,PX)的 SQL 总计消耗的线程数超过并行查询排队条件后,后继并行执行 SQL 需要排队等待。
权限要求
查询变量
sys租户和所有用户租户均可以使用SHOW VARIABLES语句或视图SYS.TENANT_VIRTUAL_GLOBAL_VARIABLE(Oracle 模式)及视图information_schema.GLOBAL_VARIABLES(MySQL 模式)查看 Global 系统变量的值。修改变量
sys租户可以直接修改 Global 系统变量的值。MySQL 用户租户需要拥有
SUPER或ALTER SYSTEM权限才能修改 Global 系统变量的值。Oracle 用户租户需要拥有
ALTER SYSTEM权限才能修改 Global 系统变量的值。
属性说明
| 属性 | 描述 |
|---|---|
| 参数类型 | Int |
| 默认值 | 0,无特殊含义,这个值会在创建租户时自动设定。 |
| 取值范围 | [0, 9223372036854775807] |
| 生效范围 | Global |
| 是否可修改 | 是,支持通过 SET 语句修改。 |
使用说明
parallel_servers_target 是一个租户级变量,在创建租户时:
如果创建租户语句里指定了
parallel_servers_target值,则该租户按照指定值来设定parallel_servers_target。创建租户时指定
parallel_servers_target值的语句如下:obclient> CREATE TENANT IF NOT EXISTS <tenant_name> CHARSET='utf8mb4', ZONE_LIST=('zone1'), PRIMARY_ZONE='zone1', RESOURCE_POOL_LIST=('<pool_name>') set parallel_servers_target = 624;如果创建租户时没有指定
parallel_servers_target值,则在 OBServer 节点内部创建租户的过程中,会自动根据min_cpu计算出一个值来设定。通过登录租户使用如下语句查看该值:
obclient> show variables like 'parallel_servers_target';自动计算的
parallel_servers_target值通常较小,仅能满足简单的并行查询需求。如果希望在该租户下使用并行操作,建议手动将该值设置为较大的值,推荐算法为parallel_servers_target = max_cpu * 10。
配置示例
设置每个 Server 上的并行查询排队为 624。
obclient> SET GLOBAL parallel_servers_target = 624;