Re: Time Series Format of Operating System Statistics
From: Karl Arao <karlarao_at_gmail.com>
Date: Sat, 30 Jan 2010 14:59:31 +0800
Message-ID: <12ee65601001292259o181e5199ta490934b73f4b28_at_mail.gmail.com>
Guys,
Date: Sat, 30 Jan 2010 14:59:31 +0800
Message-ID: <12ee65601001292259o181e5199ta490934b73f4b28_at_mail.gmail.com>
Guys,
I already got what I need.. see the following query:
select
s1t0.snap_id,
to_char(s0.BEGIN_INTERVAL_TIME,'YYYY-Mon-DD HH24:MI:SS') time,
s1t1.value - s1t0.value as busy_time,
s2t1.value as load,
s3t1.value as num_cpus,
s4t1.value as physical_memory_bytes
from dba_hist_snapshot s0,
dba_hist_snapshot s1,
dba_hist_osstat s1t0,
dba_hist_osstat s1t1,
dba_hist_osstat s2t1,
dba_hist_osstat s3t1,
dba_hist_osstat s4t1
where
s0.dbid = 2607950532
and s1t0.dbid = s0.dbid
and s1t1.dbid = s0.dbid
and s2t1.dbid = s0.dbid
and s3t1.dbid = s0.dbid
and s4t1.dbid = s0.dbid
and s0.instance_number = 1
and s1t0.instance_number = s0.instance_number
and s1t1.instance_number = s0.instance_number
and s2t1.instance_number = s0.instance_number
and s3t1.instance_number = s0.instance_number
and s4t1.instance_number = s0.instance_number
and s1.snap_id = s0.snap_id + 1
and s1t0.snap_id = s0.snap_id
and s1t1.snap_id = s0.snap_id + 1
and s2t1.snap_id = s0.snap_id
and s3t1.snap_id = s0.snap_id
and s4t1.snap_id = s0.snap_id
and s1t0.stat_name = 'BUSY_TIME'
and s1t1.stat_name = s1t0.stat_name
and s2t1.stat_name = 'LOAD'
and s3t1.stat_name = 'NUM_CPUS'
and s4t1.stat_name = 'PHYSICAL_MEMORY_BYTES'
order by snap_id asc
and the output ...
SNAP_ID TIME BUSY_TIME LOAD NUM_CPUS PHYSICAL_MEMORY_BYTES
---------- -------------------- ---------- ---------- ----------
---------------------
245 2010-Jan-14 12:38:36 1603 .239257813 1 169520
246 2010-Jan-14 13:03:23 28415 .049804688 1 154464
247 2010-Jan-14 13:10:38 8993 .059570313 1 5148
248 2010-Jan-14 14:00:39 -46770 0 1 29292
249 2010-Jan-15 23:45:26 17722 .049804688 1 311216
250 2010-Jan-15 23:56:37 7089 .659179688 1 109880
and compared to the original query and output ... plus compare it to the generated AWR report...
select
e.snap_id, substr(e.stat_name, 1, 35) as name,
(case when e.stat_name like 'NUM_CPU%' then e.value
when e.stat_name = 'LOAD' then e.value
when e.stat_name = 'PHYSICAL_MEMORY_BYTES' then e.value
else e.value - b.value
end) as value
from dba_hist_osstat b,
dba_hist_osstat e
where
b.stat_name = 'LOAD' and
b.dbid = 2607950532
and e.dbid = 2607950532
and b.instance_number = 1
and e.instance_number = 1
and e.snap_id = b.snap_id + 1
and b.stat_id = e.stat_id
order by snap_id, name asc
SNAP_ID NAME VALUE
---------- ----------------------------------- ----------
245 LOAD .239257813
246 LOAD .049804688
247 LOAD .059570313
248 LOAD 0
249 LOAD .049804688
250 LOAD .659179688
Yeah! I got it right ;)
- Karl Arao karlarao.wordpress.com
-- http://www.freelists.org/webpage/oracle-lReceived on Sat Jan 30 2010 - 00:59:31 CST
