oracle中查看 某個用戶下 表/索引 的數據量大小-MS也會問到


上腳本:

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

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM