查看并修改Doris变量
操作场景
MRS 3.6.0.1及之后版本,在Doris中变量直接控制了查询性能、资源分配及连接行为等。Doris中变量的修改分为会话级与全局级。
查看及修改Doris变量
在MySQL客户端连接Doris后(具体操作请参见快速使用Doris),即可执行变量相关操作:
- 查看Doris变量
- 查看所有变量:
SHOW VARIABLES;
- 精确/模糊过滤:
SHOW VARIABLES LIKE '%variable_name%';
例如,查看变量“exec_mem_limit”:
SHOW VARIABLES LIKE '%exec_mem_limit%';
例如,查看到的变量值为:
+----------------+--------------+---------------+---------+ | Variable_name | Value | Default_Value | Changed | +----------------+--------------+---------------+---------+ | exec_mem_limit | 137438953472 | 2147483648 | 1 | +----------------+--------------+---------------+---------+ 1 row in set (0.01 sec)
- 查看所有变量:
- 修改变量
Doris的变量分为Session(会话) 和 Global(全局) 两个作用域。
- 修改会话级变量(SET)
例如,将变量“exec_mem_limit”的值设置为128GB:
- 查看“exec_mem_limit”变量:
SHOW VARIABLES LIKE '%exec_mem_limit%';
例如,查看到的变量值为:
+----------------+------------+---------------+---------+ | Variable_name | Value | Default_Value | Changed | +----------------+------------+---------------+---------+ | exec_mem_limit | 2147483648 | 2147483648 | 0 | +----------------+------------+---------------+---------+ 1 row in set (0.02 sec)
- 设置会话级变量“exec_mem_limit”值为128GB:
SET exec_mem_limit = 137438953472;
- 查看修改后的“exec_mem_limit”变量值:
SHOW VARIABLES LIKE '%exec_mem_limit%';
查看到的变量值为:
+----------------+--------------+---------------+---------+ | Variable_name | Value | Default_Value | Changed | +----------------+--------------+---------------+---------+ | exec_mem_limit | 137438953472 | 2147483648 | 1 | +----------------+--------------+---------------+---------+ 1 row in set (0.00 sec)
- 查看“exec_mem_limit”变量:
- 修改全局级变量(SET GLOBAL)
- 语法
SET GLOBAL var_name = value;
- 生效范围
- 使用场景
- 持久化说明
例如,将变量“exec_mem_limit”的设置为128GB:
- 查看“exec_mem_limit”变量:
SHOW VARIABLES LIKE '%exec_mem_limit%';
例如,查看到的变量值为:
+----------------+------------+---------------+---------+ | Variable_name | Value | Default_Value | Changed | +----------------+------------+---------------+---------+ | exec_mem_limit | 2147483648 | 2147483648 | 0 | +----------------+------------+---------------+---------+ 1 row in set (0.01 sec)
- 设置全局级变量“exec_mem_limit”值为128GB:
SET global exec_mem_limit = 137438953472;
- 查看修改后的“exec_mem_limit”变量值:
SHOW VARIABLES LIKE '%exec_mem_limit%';
查看到的变量值为:
+----------------+--------------+---------------+---------+ | Variable_name | Value | Default_Value | Changed | +----------------+--------------+---------------+---------+ | exec_mem_limit | 137438953472 | 2147483648 | 1 | +----------------+--------------+---------------+---------+ 1 row in set (0.00 sec)
- 语法
- 修改会话级变量(SET)
Doris常见变量介绍
| 变量名称 | 变量说明 | 默认值 |
|---|---|---|
| exec_mem_limit | 单个查询在单个BE上的内存上限,遇到“Memory limit exceeded”时需调大该值。 | 2G |
| query_timeout | 数据查询最大执行时间,对于导出大批量数据的长任务需调大该值。 | 900 (s) |
| enable_spill | 当内存不足时允许中间数据落盘,防止大查询导致 OOM。 | false |
| wait_timeout | 会话空闲超时时间,防止空闲连接占用资源。 | 28800 (s) |
| enable_insert_strict | 是否开启严格模式。如果希望忽略少量数据格式错误使得数据导入执行成功,可设置该参数值为“false”。 | true |
| enable_profile | 需排查慢SQL详细耗时时,可设置该参数值为“true”,即可在WebUI页面查看。 | false |
| time_zone | 用于设置时区,影响时间函数的计算,建议进行全局(global)设置。 | xxx |
| auto_broadcast_join_threshold | 广播连接的内存阈值比例。 | 0.8 |