Oracle 表开启压缩属性的情况下无法删除unused列
Oracle 表开启压缩属性的情况下无法删除unused列
具体如下,直接删除可以成功执行但是实际没有成功删除:
15:07:54 SYS@xxxxxx2(11)> select COLUMN_NAME,HIDDEN_COLUMN from dba_tab_cols where owner='TEST' AND TABLE_NAME='HIDDEN_TABLE' and HIDDEN_COLUMN='YES';; COLUMN_NAME HIDDEN_CO ------------------------------------------------------------------------------------------ --------- SYS_C00044_21091516:47:36$ YES Elapsed: 00:00:00.01 15:01:12 SYS@xxxxxx2(11)> alter table TEST.HIDDEN_TABLE parallel 32; Table altered. Elapsed: 00:00:00.02 15:01:43 SYS@xxxxxx2(11)> alter table TEST.HIDDEN_TABLE drop unused columns; Table altered. Elapsed: 00:00:00.06 15:03:35 SYS@xxxxxx2(11)> select COLUMN_NAME,HIDDEN_COLUMN from dba_tab_cols where owner='TEST' AND TABLE_NAME='HIDDEN_TABLE' and HIDDEN_COLUMN='YES';; COLUMN_NAME HIDDEN_CO ------------------------------------------------------------------------------------------ --------- SYS_C00044_21091516:47:36$ YES Elapsed: 00:00:00.01
取消表的压缩属性后可以成功执行:
15:10:55 SYS@xxxxxx2(11)> alter table TEST.HIDDEN_TABLE nocompress; Table altered. Elapsed: 00:00:00.19 15:08:31 SYS@xxxxxx2(11)> alter table TEST.HIDDEN_TABLE drop unused columns; Table altered. Elapsed: 00:11:07.25 15:24:42 SYS@xxxxxx2(11)> select COLUMN_NAME,HIDDEN_COLUMN from dba_tab_cols where owner='TEST' AND TABLE_NAME='HIDDEN_TABLE' and HIDDEN_COLUMN='YES'; no rows selected Elapsed: 00:00:00.03 15:25:32 SYS@xxxxxx2(11)> alter table TEST.HIDDEN_TABLE noparallel; Table altered. Elapsed: 00:00:00.03 15:25:36 SYS@xxxxxx2(11)> alter table TEST.HIDDEN_TABLE compress for oltp; Table altered. Elapsed: 00:00:00.14
参考:Dropping Unused Columns fails if compression is enabled (文档 ID 2171802.1)
分类:
Oracle
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?