查询表空间及已使用情況的SQL语句

        语句一:

select  f.tablespace_name tablespace_name,

round((d.sumbytes / 1024 / 1024 / 1024), 2) total_g,

round(f.sumbytes / 1024 / 1024 / 1024, 2) free_g,

round((d.sumbytes - f.sumbytes) / 1024 / 1024 / 1024, 2) used_g,

round((d.sumbytes - f.sumbytes) * 100 / d.sumbytes, 2) used_percent

from

(select tablespace_name, sum(bytes) sumbytes from dba_free_space group by tablespace_name) f,

(select tablespace_name, sum(bytes) sumbytes from dba_data_files group by tablespace_name) d

where f.tablespace_name = d.tablespace_name

order by used_percent desc,d.tablespace_name;

语句二:

SELECT a.tablespace_name, 

round(a.bytes/1024/1024/1024,2) total, 

round(b.bytes/1024/1024/1024,2) used, 

round(c.bytes/1024/1024/1024,2) free, 

round((b.bytes * 100) / a.bytes,2) "% USED ", 

round((c.bytes * 100) / a.bytes,2) "% FREE " 

FROM sys.sm$ts_avail a, sys.sm$ts_used b, sys.sm$ts_free c 

WHERE a.tablespace_name = b.tablespace_name 

AND a.tablespace_name = c.tablespace_name;

 

语句一:使用到的视图有

dba_free_space 

dba_data_files 

语句二:使用到的视图

视图:SYS.SM$TS_AVAIL是由dba_data_files而来的

      

    视图:SYS.SM$TS_USED是由dba_segments而来的

      

    视图:SYS.SM$TS_FREE是由dba_free_space而来的

      

    

SELECT * FROM DBA_TABLESPACES -- 记录各个表空间的详细信息  

SELECT * FROM DBA_TABLESPACE_USAGE_METRICS -- 记录各个表空间的使用状况  

SELECT * FROM DBA_DATA_FILES -- 记录各个数据文件的详细信息  

SELECT * FROM DBA_SEGMENTS -- 记录各个段的详细信息,与 DBA_TABLES,DBA_INDEXES,DBA_LOBS,DBA_PART_TABLES,DBA_PART_INDEXES,DBA_PART_LOBS,DBA_OBJECTS 搭配使用  

SELECT * FROM DBA_LOBS    --BLOB 字段所对应的字段名称  

SELECT * FROM DBA_INDEXES -- 分区索引需要通过 DBA_INDEXS 来找到对应的表名  

SELECT * FROM DBA_EXTENTS -- 记录各个区间对象的详细信息

    

 

 

posted on 2019-01-09 14:39  昔日丶芳华  阅读(1342)  评论(0编辑  收藏  举报