上脚本:
1.查看用户下所有的数据对象的大小:
select
temp.owner,
temp.table_name,
temp.column_name,
temp.segment_name,
'truncate table '|| temp.segment_name ||' DROP STORAGE;' as execTxt,
temp.segment_type,temp.g from (
select
a.owner,
b.table_name,
b.column_name,
a.segment_name,
a.segment_type,
round(sum(a.bytes / 1024 / 1024 / 1024), 2) g --以 G 为单位
from dba_segments a
left join dba_lobs b
on a.owner = b.owner and a.segment_name = b.segment_name
--where b.segment_name = 'SYS_LOB0000026212C00002$$'
where a.owner='用户名'
having round(sum(a.bytes / 1024 / 1024 / 1024), 2) >1 -- 条件:大于 1G
group by a.owner,b.table_name, b.column_name, a.segment_name,a.segment_type
) temp order by temp.segment_type,temp.g desc
2.查看某一张表的大小
select a.owner as 所属用户,
a.segment_name as 名称,
a.segment_type as 类型,
round(a.bytes / 1024 / 1024, 2) 大小MB,
a.blocks as 块数量 from dba_segments a
where a.segment_name='表名称'
3.查看一个用户下面的索引总大小
select a.owner as 所属用户,
--a.segment_name as 名称,
sum(round(a.bytes /1024/1024/1024, 2)) 大小GB
from dba_segments a
where a.owner='用户名'
and a.segment_type='INDEX'
group by a.owner