Find out free space on tablespace

后端 未结 10 1674
北荒
北荒 2020-12-12 12:21

Our application has failed a few times because an \'ORA-01536: space quota exceeded for tablespace\', and we would like to be able to prevent this by checking regularly the

10条回答
  •  忘掉有多难
    2020-12-12 12:35

    A much more accurate SQL STATEMENT

    SELECT  a.tablespace_name,
        ROUND (((c.BYTES - NVL (b.BYTES, 0)) / c.BYTES) * 100,2) percentage_used,
        c.BYTES / 1024 / 1024 space_allocated,
        ROUND (c.BYTES / 1024 / 1024 - NVL (b.BYTES, 0) / 1024 / 1024,2) space_used,
        ROUND (NVL (b.BYTES, 0) / 1024 / 1024, 2) space_free, 
        c.DATAFILES
      FROM dba_tablespaces a,
           (    SELECT   tablespace_name, 
                      SUM (BYTES) BYTES
               FROM   dba_free_space
           GROUP BY   tablespace_name
           ) b,
          (    SELECT   COUNT (1) DATAFILES, 
                      SUM (BYTES) BYTES, 
                      tablespace_name
               FROM   dba_data_files
           GROUP BY   tablespace_name
        ) c
      WHERE b.tablespace_name(+) = a.tablespace_name 
        AND c.tablespace_name(+) = a.tablespace_name
    ORDER BY NVL (((c.BYTES - NVL (b.BYTES, 0)) / c.BYTES), 0) DESC;
    

提交回复
热议问题