匿名用户Oracle delete 之前的数据后 ,表空间占的硬盘空间如何释放?
Oracle delete 之前的数据后 ,表空间占的硬盘空间如何释放?
我来答
添加附件
收藏
分享
问题补充
2条回答
默认
最新
回答交流
提交
问题信息
请登录之后查看
邀请回答
暂无人订阅该标签,敬请期待~~
墨值悬赏
匿名用户Oracle delete 之前的数据后 ,表空间占的硬盘空间如何释放?
1.你需要对需要回收表空间对应数据文件的max blocks的对象例如表进行delete数据后,move,shrink才能降低高水位,再降低表或者挪走这个对象,你才能对数据文件进行空间释放;
2.你delete 不会降低高水位,只是blocks变成空块而已。数据文件空间更不会回收。
https://www.modb.pro/doc/4060
评论
有用 0
您好,
如果delete的数据量特别大,不建议在业务繁忙时候执行。
1.清理表的水位线:
a.使用create table a1 as select * from a;复刻表,然后rename表(如:RENAME old_name TO new_name),最后把需要的索引重建;
2.做表的统计分析:
a.使用dbms_stats.gather_table_stats
如:
dbms_stats.gather_table_stats(ownname=>'TEST',tabname=>'T1');
end;
/
评论
有用 0
墨值悬赏