Oracle時間模型統計SQL

oracle_ace發表於2009-11-20
到Oracle 10g, 通過查詢time model statistics可以找出應用程式在哪一類資料庫操作中耗費了最多的時間, 通過v$sys_time_model和v$sess_time_model這兩個檢視來實現。 下面這個SQL挺有用留下來做remark了。
 
WITH db_time AS ( select sid,value from v$sess_time_model where sid = &sid and stat_name = 'DB time')
select stm.stat_name AS statistic, trunc(stm.value/1000000,3) as seconds,trunc(stm.value/tot.value*100,1) as "%" from v$sess_time_model stm,db_time tot
where stm.sid=tot.sid
and stm.stat_name <> 'DB time'
and stm.value > 0
order by stm.value desc;

注意v$sess_time_model中的value是微妙單位

但是我們需要注意的是DB time只是資料庫處理所花費的時間,所以呢,資料庫等待使用者呼叫的時間是沒有包括在內的,因此利用時間模型的統計提供的資訊,是無法知道真正Performance問題是在資料庫內部還是在外部.
 

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/12361284/viewspace-620159/,如需轉載,請註明出處,否則將追究法律責任。

相關文章