一、查看表占用空间大小语句:
1、所有用户下
select t.segment_name,
t.segment_type,
sum(t.bytes / 1024 / 1024) "占用空间(M)"
from dba_segments t
where t.segment_type = 'TABLE'
group by OWNER, t.segment_name, t.segment_type
order by sum(t.bytes / 1024 / 1024) desc;
2、指定用户下
select segment_name,
tablespace_name,
bytes B,
round(bytes / 1024, 1) KB,
round(bytes / 1024 / 1024, 1) MB,
round(bytes / 1024 / 1024 / 1024, 2) GB
from dba_segments
where segment_type = 'TABLE'
and tablespace_name = 'SPC_用户名'
order by bytes desc;
二、查看表空间占用空间大小语句:
select a.tablespace_name,
a.bytes / 1024 / 1024 "Sum MB",
(a.bytes - b.bytes) / 1024 / 1024 "used MB",
b.bytes / 1024 / 1024 "free MB",
round(((a.bytes - b.bytes) / a.bytes) * 100, 2) "percent_used"
from (select tablespace_name, sum(bytes) bytes
from dba_data_files
group by tablespace_name) a,
(select tablespace_name, sum(bytes) bytes, max(bytes) largest
from dba_free_space
group by tablespace_name) b
where a.tablespace_name = b.tablespace_name
order by ((a.bytes - b.bytes) / a.bytes) desc