上腳本:
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