当前位置:网站首页>达梦数据库大表添加字段
达梦数据库大表添加字段
2022-08-05 07:29:00 【Asky】
一个1000多万记录的大表,尝试添加字段,语句如下:
alter table "HXL"."TB_OBJECTS" add column(NAME varchar(30)); ##执行很久
该语句执行很久,期间尝试开启另外的一个会话写入数据
insert into tb_objects(owner) values('TT'); ##一直等待
发现无法写入,一直在等待,请问下大表加字段怎么做呢?不能影响到业务使用
采纳答案1:
可以考虑设置参数alter_table_opt,设置为1,添加列采用查询插入法,可能导致rowid变化;ALTER_TABLE_OPT 为 2 时,系统开启快速加列功能,对于没有默认值或者默认值为 NULL 的新列,系统内部会标记为附加列,能够达到瞬间加列的效果, 此时 ROWID 不会改变, 若有默认值且默认值不为 NULL,则仍旧采取查询插入实现。如果设置成3,系统开启快速加列模式,允许指定新增列的默认值,系统会为该列设置附加列标记,查询表中已存在的数据时,会自动为记录设置追加列默认值,rowid不变。
其他答案1:
可以考虑设置参数alter_table_opt,设置为1,添加列采用查询插入法,可能导致rowid变化;ALTER_TABLE_OPT 为 2 时,系统开启快速加列功能,对于没有默认值或者默认值为 NULL 的新列,系统内部会标记为附加列,能够达到瞬间加列的效果, 此时 ROWID 不会改变, 若有默认值且默认值不为 NULL,则仍旧采取查询插入实现。如果设置成3,系统开启快速加列模式,允许指定新增列的默认值,系统会为该列设置附加列标记,查询表中已存在的数据时,会自动为记录设置追加列默认值,rowid不变。
其他答案2:
感谢,试了下,设置成3,添加带默认值字段秒级完成
ALTER_TABLE_OPT=3
[执行语句1]:
alter table HXL.TB_OBJECTS add column(NAME varchar(30) default 'AA' not null);
执行成功, 执行耗时60毫秒. 执行号:700
边栏推荐
猜你喜欢
随机推荐
【instancetype类型 Objective-C】
YOLOv3 SPP理论详解(包括CIoU及Focal loss)
行业应用软件项目经理三步曲
文本特征化方法总结
U++ 创建UI
cmake 学习使用笔记(三)
爬虫从入门到入牢
常用的遍历map的方法
C语言制作-QQ聊天室
RK3568环境安装
线程池的使用(结合Future/Callable使用)
图扑软件与华为云共同构建新型智慧工厂
busybox 知:构建
国家强制性灯具安全标准GB7000.1-2015
Invalid operator for data type.The operator is add and the type is text.
[Tool Configuration] Summary of Common Uses of VSCode
每一个女孩曾经都是一个没有泪的天使
标准C语言15
MAYA船的建模
RNote108---Display the running progress of the R program









