暂无图片
oracle删除索引如何释放磁盘空间
我来答
分享
Uncopyrightable
2022-01-11
oracle删除索引如何释放磁盘空间

通过sql监控索引的使用率,将使用率很低的索引删除,发现并没有释放磁盘空间?这个有什么好的办法缩减表空间的使用率嘛?
收集统计信息?数据重新导入?收集高水位?

我来答
添加附件
收藏
分享
问题补充
3条回答
默认
最新
JiekeXu
暂无图片

如果是无用的索引是可以删除的,要是正常使用的索引删除就不行了吧。不要为了释放磁盘空间而删除有用的数据。

缩减表空间可以收集整理表空间碎片,数据泵导入导出、移动表,重建索引等等手段。

暂无图片 评论
暂无图片 有用 0
打赏 0
暂无图片
摸摸鱼

删除对象(表,索引等)只能释放表空间,本地磁盘空间不会释放的,要想释放本地磁盘空间需要收缩数据文件,如楼上说的降低高水位resize数据文件。

暂无图片 评论
暂无图片 有用 0
打赏 0
Thomas

比如数据文件上面有5个索引A,B,C,D,E。这5个索引一般来说在该数据文件上的分布是犬牙交错的。比如具体BLOCK为B1,B2,B3....有可能A占用了B1和B12,B15,而B索引占用了B4,B5和B20。如果单纯地删除索引A,是无法降低高水位的。此时如果RESIZE DATAFILE,一般收效也甚微。最好的办法是,删除A后,将该数据文件上其它所有索引都REBUILD一下,这样自然就降低了高水位,之后再RESIZE DATAFILE是比较有效的。

暂无图片 评论
暂无图片 有用 0
打赏 0
回答交流
Markdown


请输入正文
提交