oracle表領域の使用状況の表示

947 ワード

SELECT F.TABLESPACE_NAME,
       (T.TOTAL_SPACE - F.FREE_SPACE) "    (MB)",
       F.FREE_SPACE "   (MB)",
       T.TOTAL_SPACE "     (MB)",
       (ROUND((F.FREE_SPACE / T.TOTAL_SPACE) * 100)) || '% ' "   ",
       (ROUND(((T.TOTAL_SPACE - F.FREE_SPACE) / T.TOTAL_SPACE) * 100)) || '% ' "   "
  FROM (SELECT TABLESPACE_NAME,
               ROUND(SUM(BLOCKS * (SELECT VALUE / 1024
                                     FROM V$PARAMETER
                                    WHERE NAME = 'db_block_size') / 1024)) FREE_SPACE
          FROM DBA_FREE_SPACE
         GROUP BY TABLESPACE_NAME) F,
       (SELECT TABLESPACE_NAME, ROUND(SUM(BYTES / 1048576)) TOTAL_SPACE
          FROM DBA_DATA_FILES
         GROUP BY TABLESPACE_NAME) T
 WHERE F.TABLESPACE_NAME = T.TABLESPACE_NAME