如何查看oracle表空间已使用大小

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何查看oracle表空间已使用大小相关的知识,希望对你有一定的参考价值。

Select Segment_Name,Sum(bytes)/1024/1024 From User_Extents Group By Segment_Name
这个命令可以查看oracle的所有表空间大小。
我需要得到所有表空间的已经使用大小。

还有在命令行情况下如何将结果放到一个文件里。

1. 查看所有表空间大小

SQL> select tablespace_name,sum(bytes)/1024/1024 from dba_data_files
2 group by tablespace_name;

2. 已经使用的表空间大小
SQL> select tablespace_name,sum(bytes)/1024/1024 from dba_free_space
2 group by tablespace_name;

3. 所以使用空间可以这样计算

select a.tablespace_name,total,free,total-free used from
( select tablespace_name,sum(bytes)/1024/1024 total from dba_data_files
group by tablespace_name) a,
( select tablespace_name,sum(bytes)/1024/1024 free from dba_free_space
group by tablespace_name) b
where a.tablespace_name=b.tablespace_name;

4. 下面这条语句查看所有segment的大小。
Select Segment_Name,Sum(bytes)/1024/1024 From User_Extents Group By Segment_Name

5. 还有在命令行情况下如何将结果放到一个文件里。
SQL> spool out.txt
SQL> select * from v$database;
SQL> spool off
参考技术A 查看所有表空间使用情况 :
select
b.file_id 文件ID号,
b.tablespace_name 表空间名,
b.bytes/1024/1024||'M'字节数,
(b.bytes-sum(nvl(a.bytes,0)))/1024/1024||'M' 已使用,
sum(nvl(a.bytes,0))/1024/1024||'M' 剩余空间,
100 - sum(nvl(a.bytes,0))/(b.bytes)*100 占用百分比
from dba_free_space a,dba_data_files b
where a.file_id=b.file_id
group by b.tablespace_name,b.file_id,b.bytes
order by b.file_id;
备注:建议用系统管理员dba权限进行查看。

以上是关于如何查看oracle表空间已使用大小的主要内容,如果未能解决你的问题,请参考以下文章

怎么查看oracle表空间,剩余大小,表空间利用

如何查看oracle临时表空间当前使用了多少空间的大小

如何查看oracle中某个用户占用表空间大小情况

如何在Oracle中查看各个表,表空间占用空间的大小

如何在Oracle中查看各个表,表空间占用空间的大小

oracle数据库如何查看表空间大小