Find out free space on tablespace

后端 未结 10 1650
北荒
北荒 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:45

    The following query will help to find out free space of tablespaces in MB:

    select tablespace_name , sum(bytes)/1024/1024 from dba_free_space group by tablespacE_name order by 1;
    
    0 讨论(0)
  • 2020-12-12 12:46

    I use this query

    column "Tablespace" format a13
    column "Used MB"    format 99,999,999
    column "Free MB"    format 99,999,999
    column "Total MB"   format 99,999,999
    select
       fs.tablespace_name                          "Tablespace",
       (df.totalspace - fs.freespace)              "Used MB",
       fs.freespace                                "Free MB",
       df.totalspace                               "Total MB",
       round(100 * (fs.freespace / df.totalspace)) "Pct. Free"
    from
       (select
          tablespace_name,
          round(sum(bytes) / 1048576) TotalSpace
       from
          dba_data_files
       group by
          tablespace_name
       ) df,
       (select
          tablespace_name,
          round(sum(bytes) / 1048576) FreeSpace
       from
          dba_free_space
       group by
          tablespace_name
       ) fs
    where
       df.tablespace_name = fs.tablespace_name;
    
    0 讨论(0)
  • 2020-12-12 12:47

    This is one of the simplest query for the same that I came across and we use it for monitoring as well:

    SELECT TABLESPACE_NAME,SUM(BYTES)/1024/1024/1024 "FREE SPACE(GB)"
    FROM DBA_FREE_SPACE GROUP BY TABLESPACE_NAME;
    

    A complete article about Oracle Tablespace: Tablespace

    0 讨论(0)
  • 2020-12-12 12:50

    There are many ways to check the size, but as a developer we dont have much access to query meta tables, I find this solution very easy (Note: if you are getting error message ORA-01653 ‘The ORA-01653 error is caused because you need to add space to a tablespace.’)

    --Size of All Table Space
    
    --1. Used Space
    SELECT TABLESPACE_NAME,TO_CHAR(SUM(NVL(BYTES,0))/1024/1024/1024, '99,999,990.99') AS "USED SPACE(IN GB)" FROM USER_SEGMENTS GROUP BY TABLESPACE_NAME
    --2. Free Space
    SELECT TABLESPACE_NAME,TO_CHAR(SUM(NVL(BYTES,0))/1024/1024/1024, '99,999,990.99') AS "FREE SPACE(IN GB)" FROM   USER_FREE_SPACE GROUP BY TABLESPACE_NAME
    
    --3. Both Free & Used
    SELECT USED.TABLESPACE_NAME, USED.USED_BYTES AS "USED SPACE(IN GB)",  FREE.FREE_BYTES AS "FREE SPACE(IN GB)"
    FROM
    (SELECT TABLESPACE_NAME,TO_CHAR(SUM(NVL(BYTES,0))/1024/1024/1024, '99,999,990.99') AS USED_BYTES FROM USER_SEGMENTS GROUP BY TABLESPACE_NAME) USED
    INNER JOIN
    (SELECT TABLESPACE_NAME,TO_CHAR(SUM(NVL(BYTES,0))/1024/1024/1024, '99,999,990.99') AS FREE_BYTES FROM  USER_FREE_SPACE GROUP BY TABLESPACE_NAME) FREE
    ON (USED.TABLESPACE_NAME = FREE.TABLESPACE_NAME);
    

    Thanks

    0 讨论(0)
提交回复
热议问题