暂无图片
oracle大表增加字段需要注意什么
我来答
分享
刘广
2021-11-10
oracle大表增加字段需要注意什么
暂无图片 10M

版本:oracle 11.2.0.1.0单机

OS:windows server 2008

请问一下,2亿的大表新增字段需要注意什么?


直接alter table emp add colum就行吗?

我来答
添加附件
收藏
分享
问题补充
6条回答
默认
最新
DarkAthena

我测试了一把,如果这个字段存在业务定义,在线直接加可能会出现问题,见下面的测试文章

https://www.darkathena.top/archives/aboutaddcolonline

暂无图片 评论
暂无图片 有用 1
打赏 0
暂无图片
肖杰
2021-11-11
你的测试有问题~~~ 你检查一下你的DDL_LOCK_TIMEOUT参数~~~~
肖杰
2021-11-11
如果你的DDL_LOCK_TIMEOUT参数是默认值0的话 应该是立即返回resource busy 而不是一直等待
DarkAthena
答主
2021-11-11
SQL> show parameter ddl_lock_timeout; NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ ddl_lock_timeout integer 0 数据库都是刚刚装好的,默认参数没有改过,不过在11g前后,这个特性的确有过多次改动,改天我再弄个10g/11g/12c测几把
展开全部评论(1条)
Uncopyrightable

注意备份数据;

暂无图片 评论
暂无图片 有用 0
打赏 0
刘广
题主
2021-11-10
好的谢谢专家
薛晓刚

alter table emp add colum  not null  default 带上默认值,非空。两个要素。

秒加。

暂无图片 评论
暂无图片 有用 0
打赏 0
刘广
题主
2021-11-10
2亿数据能秒加?这是什么原理,请教
文成

注意不要加错字段了,否则删除会很麻烦

暂无图片 评论
暂无图片 有用 0
打赏 0
刘广
题主
2021-11-10
好的 提前写好脚本了
DarkAthena

加字段的时候表会被锁住,注意要在没有事务对表进行操作的时候加,对于oracle来说,2亿其实还好,这个操作的性能瓶颈在你的磁盘了

暂无图片 评论
暂无图片 有用 0
打赏 0
刘广
题主
2021-11-10
谢谢 我们停机做
肖杰

11g开始新特性直接加就行了 ~~~~  default值会记录在数据字典中,并不会实际去更新此列~~~秒加~~~ 也不存在上面各位说的那些问题

暂无图片 评论
暂无图片 有用 0
打赏 0
刘广
题主
2021-11-10
直接alter table emp add colum not null default;即可吗
肖杰
答主
2021-11-10
是的
回答交流
Markdown


请输入正文
提交