oracle查询表空间⼤⼩以及每个表所占空间的⼤⼩
最近维护的项⽬遇到了oracle的性能的问题,需要查询⼀下oracle数据库表空间的⼤⼩以及每个表所占空间的⼤⼩,在⽹上搜索了⼀些查询语句,在此记录⼀下:
1、查询数据库中所有的表空间以及表空间所占空间的⼤⼩,直接执⾏语句就可以了:
oracle数据库表结构怎么看select tablespace_name, sum(bytes)/1024/1024 from dba_data_files group by tablespace_name;
2、查看表空间物理⽂件的名称及⼤⼩
select tablespace_name, file_id, file_name,
round(bytes/(1024*1024),0) total_space
from dba_data_files
order by tablespace_name;
3、查询所有表空间以及每个表空间的⼤⼩,已⽤空间,剩余空间,使⽤率和空闲率,直接执⾏语句就可以了:
select a.tablespace_name, total, free, total-free as used, substr(free/total * 100, 1, 5) as "FREE%", substr((total - free)/total * 100, 1, 5) as "USED%" from
(select tablespace_name, sum(bytes)/1024/1024 as total from dba_data_files group by tablespace_name) a,
(select tablespace_name, sum(bytes)/1024/1024 as free from dba_free_space group by tablespace_name) b
where a.tablespace_name = b.tablespace_name
order by a.tablespace_name;
4、查询某个具体的表所占空间的⼤⼩,把“TABLE_NAME”换成具体要查询的表的名称就可以了:
select t.segment_name, t.segment_type, sum(t.bytes / 1024 / 1024) "占⽤空间(M)"
from dba_segments t
where t.segment_type='TABLE'
and t.segment_name='TABLE_NAME'
group by OWNER, t.segment_name, t.segment_type;

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。