使用statspack進行oracle效能分析

2021-08-25 15:57:34 字數 3455 閱讀 3354

在做執行報告的時候,主機可以取

cpu,記憶體,程序數的相關引數做報表,而資料庫卻很難做出長時間效能引數的報告。

statspack

是oracle

效能分析的乙個報告,但這個報告只能取乙個規定時間段的值,可以用來分析問題,但不能反映隨時間的變化趨勢,也很難進行圖表展示。

oracle

相關工具

toad

提供了statspack

的簡單圖表展示,但選擇時間點很麻煩,且只有有限幾個引數。原則上來說,工具能實現的功能利用

sql語句都能實現。下面是乙個利用

statspack

進行oracle

效能分析的乙個簡單例子。 具體

sql語句如下

selectw.snap_id,

sn.snap_time,

w.event event,

w.total_waits - w.last_wait waits,

w.total_timeouts - w.last_timeout timeouts,

(w.time_waited - w.last_time_waited)/1000000 time_waited_s

fromperfstat.stats$snapshot sn,

(selectsnap_id, dbid, instance_number, event,

total_waits,

lag(total_waits, 1) over (order byevent, snap_id) last_wait,

total_timeouts,

lag(total_timeouts, 1) over (order byevent, snap_id) last_timeout, time_waited_micro time_waited,

lag(time_waited_micro, 1) over (order byevent, snap_id)

last_time_waitedfromperfstat.stats$system_event

whereeventnot in(selecteventfromperfstat.stats$idle_event)

andsnap_idin(selectsnap_idfromstats$snapshotwheresnap_time >sysdate-300) ----300 days

) wwherew.time_waited - w.last_time_waited > 0

andw.snap_id > (select min(snap_id)fromstats$snapshotwheresnap_time >sysdate-300) ----300 days

--and sn.snap_id in (22391,22392,22393)

andsn.snap_id = w.snap_id

andsn.dbid = w.dbid

andsn.instance_number = w.instance_number

andeventnot like'%message%'

andeventnot like'sql*net%'

and(w.time_waited - w.last_time_waited) > 600*1000000 ---- wait time >10 min

union all

selectss.snap_id, sn.snap_time, 'cpu time' ,0, 0,round((ss.value- lag(ss.value,1) over (order byss.snap_id))/100,0)asvalue_cputime

fromperfstat.stats$sysstat ss, perfstat.stats$snapshot sn

wheress.snap_id = sn.snap_id

andss.name= 'cpu used by this session'

andss.snap_idin(selectsnap_idfromstats$snapshotwheresnap_time >sysdate-300)

--and ss.snap_id in (22391,22392,22393)

andss.dbid = sn.dbid

andss.instance_number = sn.instance_number

order by1, 6desc通過

sql查詢出來的資料,匯入到

excel

中(可以利用

taod

、pl/sql

等工具),利用

excel

的透檢視功能,進行圖形繪製,如下圖是某系統

2023年1

月的top wait event

的結果。從圖可以看出主要等待事件是

db file sequential read

和cpu time

。db file sequentialread

事件多說明系統

io壓力大。

命中率的圖(本週),低點一般在凌晨

4點,其它命中率

98%以上

理論上講,statspack報告中的所有效能引數都可以進行圖表展示,前提是擁有定期收集的資料。

使用statspack進行oracle效能分析

在做執行報告的時候,主機可以取 cpu,記憶體,程序數的相關引數做報表,而資料庫卻很難做出長時間效能引數的報告。statspack 是oracle 效能分析的乙個報告,但這個報告只能取乙個規定時間段的值,可以用來分析問題,但不能反映隨時間的變化趨勢,也很難進行圖表展示。oracle 相關工具 toa...

statspack安裝使用和report分析

dba1 群 62697716 滿 dba2 群 62697977 滿 dba3 群 62697850 滿 dba 超級群 63306533 滿 dba4 群 83829929 dba5群 142216823 dba6 群 158654907 聊天 群 40132017 聊天2群 69087192 ...

statspack應用指南

參考 statspack使用指南 v3 1 0.pdf 調整statspack 的收集門限 statspack 有兩種型別的收集選項 級別 level 控制收集資料的型別 門限 threshold 設定收集的資料的閾值。1 級別 level statspack 共有三種快照級別,預設值是5 a.le...