Tablespace Size

 SELECT /* + RULE */  df.tablespace_name "Tablespace", 
  df.bytes / (1024 * 1024) "Size (MB)", 
  SUM(fs.bytes) / (1024 * 1024) "Free (MB)", 
  Nvl(Round(SUM(fs.bytes) * 100 / df.bytes),1) "% Free", 
  Round((df.bytes - SUM(fs.bytes)) * 100 / df.bytes) "% Used" 
  FROM dba_free_space fs, 
 (SELECT tablespace_name,SUM(bytes) bytes 
  FROM dba_data_files 
  GROUP BY tablespace_name) df 
WHERE fs.tablespace_name (+)  = df.tablespace_name 
 GROUP BY df.tablespace_name,df.bytes 
UNION ALL 
SELECT /* + RULE */ df.tablespace_name tspace, 
 fs.bytes / (1024 * 1024), 
 SUM(df.bytes_free) / (1024 * 1024), 
 Nvl(Round((SUM(fs.bytes) - df.bytes_used) * 100 / fs.bytes), 1), 
 Round((SUM(fs.bytes) - df.bytes_free) * 100 / fs.bytes) 
  FROM dba_temp_files fs, 
  (SELECT tablespace_name,bytes_free,bytes_used 
    FROM v$temp_space_header 
  GROUP BY tablespace_name,bytes_free,bytes_used) df 
 WHERE fs.tablespace_name (+)  = df.tablespace_name 
 GROUP BY df.tablespace_name,fs.bytes,df.bytes_free,df.bytes_used 
 ORDER BY 4 DESC; 


col SEGMENT_NAME format a20
col SEGMENT_TYPE format a15;
col TABLESPACE_NAME format a25;
SELECT * FROM
(select 
 SEGMENT_NAME, 
 SEGMENT_TYPE, 
 BYTES/1024/1024/1024 GB, 
 TABLESPACE_NAME 
from 
 dba_segments
order by 3 desc ) WHERE
ROWNUM <= 40 AND TABLESPACE_NAME='TABLESPACE_NAME';

AWR Reports

select snap_id, begin_interval_time,end_interval_time from dba_hist_snapshot;

@$ORACLE_HOME/rdbms/admin/awrrpt.sql


How to find the best Interval to Generate your AWR Reports?

To Single Instance this can be done using bellow query:


SET LINESIZE 200
SET PAGESIZE 200
UNDEF num_days
COL startup_time FOR a30
COL db_name FOR a10
COL snap_start FOR 9999999
COL snap_end FOR 9999999
COL start_interval FOR a25
COL end_interval FOR a25
COL range_interval FOR a40
COL qtd_snaps FOR 999

SELECT
    s.startup_time,
    di.instance_name,
    MIN(snap_id) snap_start,
    MAX(snap_id) snap_end,
    MIN(end_interval_time) start_interval,
    MAX(end_interval_time) end_interval,
    EXTRACT(DAY FROM(MAX(end_interval_time) ) - MIN(end_interval_time) )
    || ' Days(s) '
    || EXTRACT(HOUR FROM(MAX(end_interval_time) ) - MIN(end_interval_time) )
    || ' Hour(s) '
    || EXTRACT(MINUTE FROM(MAX(end_interval_time) ) - MIN(end_interval_time) )
    || ' Minute(s) ' range_interval,
    MAX(snap_id) - MIN(snap_id) qtd_snaps
FROM
    dba_hist_snapshot s,
    dba_hist_database_instance di
WHERE
    di.dbid = s.dbid
    AND   di.instance_number = s.instance_number
    AND   end_interval_time > DECODE(&&num_days,0,TO_DATE('31-JAN-9999','DD-MON-YYYY'),3.14,s.end_interval_time,TO_DATE(SYSDATE,'dd/mm/yyyy'
) - (&num_days - 1) )
GROUP BY
    s.startup_time,
    di.instance_name
ORDER BY
    startup_time ASC;