暂无图片
Oracle set unused 命令
我来答
分享
Thomas
2022-09-25
Oracle set unused 命令

一般,要对大表DROP COLUMN,DROP期间会锁表,客户端SQL无法执行。这篇文章提了另一个方法:先将COLUMN设置成unused, 然后再择机将其DROP掉。但和直接drop column比,似乎也没体现出啥优越性。大家评判下。详见附件。

我来答
添加附件
收藏
分享
问题补充
3条回答
默认
最新
刘贵宾

这不就是为了减少从大表中删除列时可能出现的数据库高负载情况发生么。业务高峰时段切断生产中对列的访问而没有 I/O 延迟,将列标记为未使用,然后在以后非高峰时段进行物理删除。

暂无图片 评论
暂无图片 有用 1
暂无图片
Thomas
上传附件:Set unused.txt
暂无图片 评论
暂无图片 有用 0
Thomas

只能在这种情况下还有用:当前SQL不会涉及该字段,那么将其设置为UNUSED,对业务无影响,待到闲时再物理DROP掉。从描述的情况看,应该是这种情形。要不然不论是DROP COLUMN还是SET UNUSED,一旦执行成功,马上就乱套了。

暂无图片 评论
暂无图片 有用 0
回答交流
提交
问题信息
请登录之后查看
附件列表
请登录之后查看
邀请回答
暂无人订阅该标签,敬请期待~~
暂无图片墨值悬赏