查询表空间使用量


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

  SELECT t1.tablespace_name,实际使用G,文件最大值G,(实际使用G/文件最大值G)*100
FROM
      (
      SELECT t.tablespace_name,SUM(t.bytes)/1024/1024/1024 实际使用G
      FROM dba_segments t
      GROUP BY t.tablespace_name
      ) T1
LEFT JOIN
    (
    SELECT tablespace_name,SUM(MAXbytes)/1024/1024/1024 文件最大值G
     FROM dba_data_files f
    GROUP BY f.tablespace_name
    ) T2 ON (T2.tablespace_name=T1.tablespace_name)
   
   

SELECT TOTAL.TABLESPACE_NAME,
       (TOTAL.TOTAL_SPACE - FREE.FREE_SPACE) || 'M' AS USED_SPACE,
       TOTAL.TOTAL_SPACE || 'M' AS TOTAL_SPACE,
       TRUNC((1 - (FREE.FREE_SPACE / TOTAL.TOTAL_SPACE)), 4) * 100 || '%' AS USED
  FROM (SELECT TABLESPACE_NAME, SUM(BYTES) / 1024 / 1024 AS TOTAL_SPACE
          FROM DBA_DATA_FILES
         GROUP BY TABLESPACE_NAME) TOTAL
  LEFT JOIN (SELECT TABLESPACE_NAME, SUM(BYTES) / 1024 / 1024 AS FREE_SPACE
               FROM DBA_FREE_SPACE
              GROUP BY TABLESPACE_NAME) FREE ON TOTAL.TABLESPACE_NAME =
                                                FREE.TABLESPACE_NAME
 ORDER BY TABLESPACE_NAME;

 

posted @ 2015-01-27 12:41  CoderLeob  阅读(141)  评论(0)    收藏  举报