Skip to content

适用虚谷数据库版本

v12.10.8



适用虚谷数据库版本

v12.10.8


DDL表重整或复制行数限制(tab_rebuild_limit)

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

引入版本

v11.0.0

功能描述

重整表或复制表时数据行数的条件阈值(单位:百万)。

参数属性

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

使用场景说明

  1. 该参数控制系统对普通用户进行重整表或复制表(CREATE .. AS SELECT ..)操作的数据行数限制。
  2. 修改表结构会导致重整表的可能场景:
修改表动作是否产生数据重整
删除表字段
新增表字段,且新字段带有默认值约束
修改表字段(修改前后类型不一致,
CHAR 改 VARCHAR、VARCAHR 改 CHAR 除外
修改表字段(修改前后类型一致,但精度不一致)
重整表数据
添加/更改/删除约束
添加/删除分区
更改表对象属主
其它操作

注意

  1. 若重整表的数据行数大于 tab_rebuild_limit,系统将中止任务并上报 E5253 异常;若复制表(CREATE .. AS SELECT ..)的数据行数大于 tab_rebuild_limit,系统将中断任务并上报 E5261 异常。
  2. 系统管理员用户(SYSDBA)不受 tab_rebuild_limit 限制。
  3. tab_rebuild_limit = 0,对重整表和复制表不设数据行数条件阈值,普通用户可以对任意体量的表进行重整或复制(慎用)。

示例

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 '测试'; -- 执行成功;