You are on page 1of 2

--

-----------------------------------------------------------------------------------
-- File Name : free_space.sql
-- Description : Displays space usage for each datafile.
-- Requirements : Access to the DBA views.
-- Call Syntax : @free_space
--
-----------------------------------------------------------------------------------

SET LINESIZE 200


SET VERIFY OFF

COLUMN runid FORMAT 99999


COLUMN unit_number FORMAT 99999
COLUMN unit_type FORMAT A20
COLUMN unit_owner FORMAT A20

SELECT u.runid,
u.unit_number,
u.unit_type,
u.unit_owner,
u.unit_name,
d.line#,
d.total_occur,
ROUND(d.total_timed.total_occur) as time_per_occur,
d.total_time,
d.min_time,
d.max_time
FROM plsql_profiler_units u
JOIN plsql_profiler_data d ON u.runid = d.runid AND u.unit_number =
d.unit_number
WHERE u.runid = &1
AND d.total_time 0
AND d.total_occur 0
ORDER BY (d.total_timed.total_occur) DESC, u.unit_number, d.line#;

SET PAGESIZE 100


SET LINESIZE 265

COLUMN tablespace_name FORMAT A20


COLUMN file_name FORMAT A50

SELECT df.tablespace_name,
df.file_name,
df.size_mb,
f.free_mb,
df.max_size_mb,
f.free_mb + (df.max_size_mb - df.size_mb) AS max_free_mb,
RPAD(' '|| RPAD('X',ROUND((df.max_size_mb-(f.free_mb + (df.max_size_mb -
df.size_mb)))/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_data_files) df,
(SELECT TRUNC(SUM(bytes)/1024/1024) AS free_mb,
file_id
FROM dba_free_space
GROUP BY file_id) f
WHERE df.file_id = f.file_id (+)
ORDER BY df.tablespace_name,
df.file_name;

PROMPT
SET PAGESIZE 14

You might also like