Friday, August 9, 2024

Oracle Database Tablesapace usage check

SELECT
    tablespace_name,
    ROUND((tablespace_size * 8192) / 1024 / 1024 / 1024, 2) AS SIZE_GB,
    ROUND((used_space * 8192) / 1024 / 1024 / 1024, 2) AS USED_GB,
    ROUND(used_percent, 2) AS used_percent
FROM
    dba_tablespace_usage_metrics;


-----------------------------------------------------------------------------------------------------------------------


Space used and free by tablespace (from SQL Developer)

SELECT   ts.tablespace_name
 
, 'SQLDEV:GAUGE:0:100:0:0:'
   
||NVL ( ROUND ( ( ( datafile.bytes - NVL ( freespace.bytes, 0 ) ) / datafile.bytes ) * 100, 2 ), 0 ) percent_used
 
, ROUND ( ( ( datafile.bytes         - NVL ( freespace.bytes, 0 ) ) / datafile.bytes ) * 100, 2 ) PCT_USED
 
, datafile.bytes                     / 1024 / 1024 allocated
 
, ROUND ( datafile.bytes             / 1024 / 1024 - NVL ( freespace.bytes, 0 ) / 1024 / 1024, 2 ) used
 
, ROUND ( NVL ( freespace.bytes, 0 )  / 1024 / 1024, 2 ) free
 
, datafile.datafiles
 
FROM dba_tablespaces ts
 
, (SELECT   tablespace_name
     
, SUM ( bytes ) bytes
     
FROM dba_free_space
     
GROUP BY tablespace_name
   
) freespace
 
, (SELECT   COUNT ( 1 ) datafiles
     
, SUM ( bytes ) bytes
     
, tablespace_name
     
FROM dba_data_files
     
GROUP BY tablespace_name
   
) datafile
 
WHERE freespace.tablespace_name (+) = ts.tablespace_name
 
AND datafile.tablespace_name (+)   = ts.tablespace_name
 
ORDER BY NVL ( ( ( datafile.bytes - NVL ( freespace.bytes, 0 ) ) / datafile.bytes ), 0 ) DESC