上脚本:

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

 

 

posted on 2022-02-15 11:05  水语者9  阅读(4236)  评论(0编辑  收藏  举报