← Space Management
Oracle · Space Management

How to check tablespace free space with a visual bar in Oracle

Show Oracle tablespace size, free, max free, free percentage, and a simple ASCII bar of used percentage.

Tested on11g12c18c19c21c23ai26ai

Account for autoextend: max_free_mb is the free space you would have if every datafile grew to its max size. The RPAD bar gives a quick eyeball of how full each tablespace is without switching to a GUI.

SET PAGESIZE 140 LINESIZE 200
COLUMN used_pct FORMAT a11

SELECT tablespace_name,
       size_mb,
       free_mb,
       max_size_mb,
       max_free_mb,
       TRUNC((max_free_mb / max_size_mb) * 100) AS free_pct,
       RPAD(' ' || RPAD('X', ROUND((max_size_mb - max_free_mb) / max_size_mb * 10, 0), 'X'), 11, '-') AS used_pct
FROM (
  SELECT a.tablespace_name,
         b.size_mb,
         a.free_mb,
         b.max_size_mb,
         a.free_mb + (b.max_size_mb - b.size_mb) AS max_free_mb
  FROM   (SELECT tablespace_name,
                 TRUNC(SUM(bytes) / 1024 / 1024) AS free_mb
          FROM   dba_free_space
          GROUP BY tablespace_name) a,
         (SELECT tablespace_name,
                 TRUNC(SUM(bytes) / 1024 / 1024) AS size_mb,
                 TRUNC(SUM(GREATEST(bytes, maxbytes)) / 1024 / 1024) AS max_size_mb
          FROM   dba_data_files
          GROUP BY tablespace_name) b
  WHERE  a.tablespace_name = b.tablespace_name
)
ORDER BY tablespace_name;
spacetablespacefree space