oracle下查询表占用空间大小

在Oracle中查询表的大小来管理维护表空间
下面是表占用空间大小的SQL:

select t.owner,t.segment_name, t.segment_type, sum(t.bytes / 1024 / 1024) "占用空间(M)"
from dba_segments t
where t.segment_type='TABLE' and owner not like '%SYS%'
group by OWNER, t.segment_name, t.segment_type order by sum(t.bytes / 1024 / 1024) desc;

在查询结果中会看到 segment_name 字段中有一部分表的名字以BIN开头,这部分表是drop表时产生的备份数据,存于回收站用以误删表时恢复数据
以下是有关于回收表相关的SQL:

PURGE RECYCLEBIN; --删除回收站中所有的表
PURGE TABLE tablename;  --删除回收站中指定的表
select * from recyclebin where type='TABLE'; --查询回收站中的表
FLASHBACK TABLE tablename; --恢复被删除的表

若想删除表时不产生回收站中的垃圾信息以此来节省表空间可以用以下SQL(在drop语句后加 purge 来清除)来drop表:

drop table tablename purge;
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值