DDL表重整或复制行数限制(tab_rebuild_limit)
📄字数 898
👁️阅读量 加载中...
引入版本
v11.0.0
功能描述
重整表或复制表时数据行数的条件阈值(单位:百万)。
参数属性
| 属性 | 属性值 |
|---|---|
| 参数类型 | INTEGER |
| 默认值 | 10 |
| 取值范围 | [0,10000] |
| 影响范围 | 系统级 |
| 修改方式 | 在线修改,立即生效 |
使用场景说明
- 该参数控制系统对普通用户进行重整表或复制表(CREATE .. AS SELECT ..)操作的数据行数限制。
- 修改表结构会导致重整表的可能场景:
| 修改表动作 | 是否产生数据重整 |
|---|---|
| 删除表字段 | 是 |
| 新增表字段,且新字段带有默认值约束 | 是 |
| 修改表字段(修改前后类型不一致, CHAR 改 VARCHAR、VARCAHR 改 CHAR 除外 ) | 是 |
| 修改表字段(修改前后类型一致,但精度不一致) | 是 |
| 重整表数据 | 是 |
| 添加/更改/删除约束 | 否 |
| 添加/删除分区 | 否 |
| 更改表对象属主 | 否 |
| 其它操作 | 否 |
注意
示例
sql
-- 在线修改 tab_rebuild_limit
SQL> SET tab_rebuild_limit TO 10;
-- 在线查看 tab_rebuild_limit
SQL> SHOW tab_rebuild_limit;
/*
* 场景一:
* 1. tab_rebuild_limit = 10;
* 2. 已知表对象 t1 的数据行数为 2000 万;
* 3. 普通用户身份执行。
*/
SQL> ALTER TABLE t1 ALTER TABLE t1 ADD COLUMN c2 VARCHAR CONSTRAINT DEF DEFAULT '测试'; -- 抛异常 E5261
/*
* 场景二:
* 1. tab_rebuild_limit = 0;
* 2. 已知表对象 t1 的数据行数为 2000 万;
* 3. 普通用户身份执行。
*/
SQL> ALTER TABLE t1 ALTER TABLE t1 ADD COLUMN c2 VARCHAR CONSTRAINT DEF DEFAULT '测试'; -- 执行成功;