暂无图片
oracle 12c delete 表数据后如何释放空间?
我来答
分享
只此无云
2022-03-04
oracle 12c delete 表数据后如何释放空间?

版本:12.2

问题:有一张400G左右的表,存在多个BLOB字段,使用delete删除约一半数据后,空间未释放。该如何释放空间?

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

可以先复制或者有用的数据到一张新表中,然后使用truncate或者drop方式删除旧表数据;

   

TRUNCATE操作,表和索引所占用的空间会恢复到初始大小,

DELETE操作不会减少表或索引所占用的空间。

DROP语句将表所占用的空间全释放掉。

暂无图片 评论
暂无图片 有用 0
打赏 0
暂无图片
薛晓刚

任意版本,del都不释放。

你需要shrink,或者建立分区截断分区。

暂无图片 评论
暂无图片 有用 0
打赏 0
只此无云
题主
2022-03-04
我尝试了shrink,空间没有变化
只此无云
题主
2022-03-04
alter table tablename shrink space compact;
feigch

重新建一个新表,把这张表取代了,然后把这个表和表空间都删除掉就可以了。

暂无图片 评论
暂无图片 有用 0
打赏 0
杨卓

1.首先明确400G的数据是表本身的,还是表的BLOB对象带来的;

2.对于对象的回收可以使用move, lob tables都可以使用move回收空间;

shrink适合单独表的空间回收不适用于lob

暂无图片 评论
暂无图片 有用 0
打赏 0
只此无云
题主
2022-03-04
BLOB对象的,已经通过备份重建表的方式,释放空间了。谢谢
回答交流
Markdown


请输入正文
提交
相关推荐
12c oracle数据库频繁出连接超时问题
回答 1
实在不行抓个包看一下
delete删除一条语句特别的慢
回答 12
1.锁了!2.要么表太大!没走索引!重建索引3.高水位!4硬件问题io问题.5有大量sql查此表
ORACLE 12C 之1Z0-063 考试
回答 4
已采纳
063已经停考了,现在是083
Oracle启库报错
回答 1
磁盘连不上,看asm的报错,磁盘组mount一下
oracle 12C rename table 表注意事项
回答 2
使用ALTERTABLE语句重命名表:ALTERTABLEoldtablenameRENAMETOnewtablename;更新查询语句、存储过程和触发器中的表名。更新其他表、视图或外部系统中对原表名
oracle12.2.0.1 RAC最新一直遇到的问题
回答 7
学习了
Oracle 增量备份异机恢复
回答 7
已采纳
恢复时主要看你的这0、1、2级备份是差异备份还是累积备份。还原时需要一个全备一个累积增备或者需要一个全备多个差异增备
oralce 12R1 安装grid oc4j启动失败
回答 1
这个没啥难得,重新多来几次就好了。经验都是在错误中总结出来的。
Oracle 11.2.0.4 版本的grid软件升级问题?
回答 3
已采纳
不需要。升级OracleGRID软件会在新版本中保留现有的Diskgroup结构和数据,升级过程会自动将现有的Diskgroup迁移到新版本。但是如果有条件的话,还是建议升级之前做个数据库的备份。
如何通过gdb定位oracle卡在那个函数了?
回答 2
https://blog.csdn.net/DongHFUT/article/details/125816152