← Space Management
Oracle · Space Management
How to check TEMP tablespace free space per datafile in Oracle
Show Oracle TEMP tablespace per-datafile size, free, max size accounting for autoextend, and a used-percentage bar.
Tested on11g12c18c19c21c23ai26ai
Per-tempfile view: current MB, free MB, max size (accounting for autoextend), max free (headroom at max size), and an ASCII bar showing used-percentage. Useful when TEMP fills up during heavy sorts or large hash joins.
SET LINESIZE 255
COLUMN tablespace_name FORMAT a20
COLUMN file_name FORMAT a40
SELECT tf.tablespace_name,
tf.file_name,
tf.size_mb,
f.free_mb,
tf.max_size_mb,
f.free_mb + (tf.max_size_mb - tf.size_mb) AS max_free_mb,
RPAD(' ' || RPAD('X',
ROUND((tf.max_size_mb - (f.free_mb + (tf.max_size_mb - tf.size_mb))) / tf.max_size_mb * 10, 0),
'X'), 11, '-') AS used_pct
FROM (SELECT file_id, file_name, tablespace_name,
TRUNC(bytes / 1024 / 1024) AS size_mb,
TRUNC(GREATEST(bytes, maxbytes) / 1024 / 1024) AS max_size_mb
FROM dba_temp_files) tf,
(SELECT file_id,
TRUNC(SUM(bytes) / 1024 / 1024) AS free_mb
FROM dba_free_space
GROUP BY file_id) f
WHERE tf.file_id = f.file_id (+)
ORDER BY tf.tablespace_name, tf.file_name;spacetemptempfilefree space