Skip to content

适用虚谷数据库版本

v12.10.8



适用虚谷数据库版本

v12.10.8


最大SQL长度限制(max_sql_size)

📄字数 646
👁️阅读量 加载中...

引入版本

v12.0.0

功能描述

最大SQL长度限制(单位:MB)。

参数属性

属性属性值
参数类型INTEGER
默认值2
取值范围[1, 1024]
影响范围系统级
修改方式在线修改,立即生效

使用场景说明

  1. SQL 长度超过 max_sql_size,系统会拒绝 SQL 处理请求并上报 E19196 异常。
  2. max_sql_size 是系统内部可处理的 SQL 请求字符串长度阈值,系统 COMMAND.LOG 和 ERROR.LOG 日志针对 SQL 的记载能力只有 16KB,超过 16KB 的 SQL 在记载日志时会被截断。
  3. 开启预处理(prepare)语句补齐(supple_prepare_sql = true),SYSDBA.SYS_SESSIONS 的 SQL 字段记载能力只有 4KB,超过 4KB 的 SQL 部分会被截断。

提示

当数据库参数 max_malloc_once(单次内存分配上限)和 max_sql_size(SQL语句长度限制)设置过大,且用户提交超长SQL时,若服务器物理内存不足,可能导致OOM或进程异常退出。

示例

sql
-- 在线修改 max_sql_size
SQL> SET max_sql_size TO 2;

-- 在线查看 max_sql_size
SQL> SHOW max_sql_size;

/*
 * 场景一:
 *   1. max_sql_size = 1;
 *   2. auto_commit = true;
 */
SQL> CREATE TABLE t1(c1 INTEGER, c2 VARCHAR);
SQL> INSERT INTO t1 VALUES(1, 'ab-xxx-xxx');INSERT INTO ... -- 执行长度超过 1MB 的多语句 SQL,结果报错 E19196 异常。