Oracle表空间清理

Oracle表空间清理一 查看表所占空间大小 1 查看用户表 索引 分区表占用空间 selectsegmen name sum bytes 1024 1024asMbytes segmentsgrou nameorderbyM 2 表占用空间 selectsegmen name sum bytes 1024 1

一、查看表所占空间大小

--1、查看用户表、索引、分区表占用空间 select segment_name, sum(bytes)/1024/1024 as Mbytes from user_segments group by segment_name order by Mbytes desc; --2、表占用空间: select segment_name, sum(bytes)/1024/1024 as Mbytes from user_segments where segment_type='TABLE' group by segment_name order by Mbytes desc; --3、索引占用空间: select segment_name ,sum(bytes)/1024/1024 as Mbytes from user_segments where segment_type ='INDEX' group by segment_name order by Mbytes desc; --4、分区表TABLE PARTITION占用空间: select segment_name,sum(bytes)/1024/1024 as Mbytes from user_segments where segment_type='TABLE PARTITION' group by segment_name order by Mbytes desc;

二、删除不需要的表和分区

使用drop命令删除不需要的表和分区,删除后再执行[语句1],发现表里多了以BIN开头的文件,而且仍然占用很大空间。

oracle drop table的时候,不会彻底删除该表,它将drop的表放到了自己的回收站里,放到回收站的表就是我们看到的形如bin$/rt62vkdt5wmrjfcz28eja==$0的表,其中包含了表的结构定义信息和数据。

三、清理垃圾表

PURGE RECYCLEBIN

四、扩展

--查询所有垃圾表 select * from recyclebin where type='TABLE'; --删除回收站中所有的表 PURGE RECYCLEBIN -------这语句就能清除所有以BIN开头的残留文件 --删除指定的垃圾表 PURGE TABLE TABLE_NAME --闪回被删除的表 FLASHBACK TABLE table_name TO BEFORE DROP; --Drop表时不产生Bin型表 DROP TABLE "TableName" purge; --设置falshback功能的开启和关闭 startup mount alter database flashback on(off)

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/225166.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月17日 上午9:57
下一篇 2026年3月17日 上午9:57


相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号