-- display given statistics from DBA_HIST_SYSSTAT
col BEGIN_INTERVAL_TIME for a25
set pages 100 lines 130
set verify off term on
accept sysstat prompt 'Enter a sysstat to search for: '
select STAT_ID, STAT_NAME
from DBA_HIST_STAT_NAME
where lower(STAT_NAME) like lower('%&sysstat%')
order by stat_name;
accept stat_id prompt 'Enter the desired stat_id: '
accept startdate prompt 'Start date (YYYYMMDD) [today] : '
accept enddate prompt 'End date date (YYYYMMDD) [today] : '
select STAT_NAME,
nvl('&startdate',to_char(sysdate,'YYYYMMDD')) as "START",
nvl('&enddate',to_char(sysdate,'YYYYMMDD')) as "END"
from DBA_HIST_STAT_NAME
where STAT_ID = &stat_id;
select BEGIN_INTERVAL_TIME, VALORE,
substr( rpad('*',40*round( VALORE/max(VALORE)over(),2),'*'),1,40) PLOTTED_VALORE
from (
select s.BEGIN_INTERVAL_TIME BEGIN_INTERVAL_TIME,
nvl(decode(greatest(VALUE, nvl(lag(VALUE) over
(partition by s.dbid, s.instance_number, g.stat_name order by s.snap_id),0)),
VALUE,
VALUE - lag(VALUE) over
(partition by s.dbid, s.instance_number, g.stat_name order by s.snap_id),VALUE), 0) VALORE
from DBA_HIST_SNAPSHOT s,
DBA_HIST_SYSSTAT g,
v$instance i
where s.SNAP_ID=g.SNAP_ID
and g.STAT_ID='&stat_id'
and s.BEGIN_INTERVAL_TIME >=
trunc(to_timestamp(nvl('&startdate',to_char(sysdate,'YYYYMMDD')),'YYYYMMDD'))
and s.BEGIN_INTERVAL_TIME < =
trunc(to_timestamp(nvl('&enddate',to_char(sysdate,'YYYYMMDD')),'YYYYMMDD')+1)
and s.instance_number=i.instance_number
and s.instance_number=g.instance_number
order by 1
);