首批通过分布式安全可靠测评,为关键业务系统打造
ob_sql_work_area_percentage
更新时间:2026-03-21 08:38:34
说明
该变量从 V2.1 版本开始引入。
功能描述
ob_sql_work_area_percentage 用于设置 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 系统变量的值。
属性说明
| 属性 | 描述 |
|---|---|
| 参数类型 | String |
| 默认值 | 5 |
| 取值范围 | [0, 100] |
| 生效范围 | Global |
| 是否可修改 | 是,支持通过 SET 语句修改。 |
使用说明
工作区内存,是指 SQL 排序等阻塞性算子使用的内存,通过租户系统变量 ob_sql_work_area_percentage 控制,默认值为 5%,即 工作区内存 = 租户内存 * ob_sql_work_area_percentage(默认 5%)。
如果请求并发量较大,且每个请求占用的工作区内存比较多,可能出现工作区内存不足的报错,经常出现的场景有 union、sort、group by 等。上述问题如果出现,可以通过适当调大系统变量来规避,例如:
obclient> SET GLOBAL ob_sql_work_area_percentage = 10;