|
原帖由 棉花糖ONE 于 2008-1-8 21:57 发表
biti的一偏文章写到,这个的计算有问题,自己算算(transaction rollbacks)/(transaction rollbacks+user commits)是不是很高
statspack的代码里面是:
select 'Load Profile'
,'~~~~~~~~~~~~ Per Second Per Transaction'
,' --------------- ---------------'
,' Redo size:' dscr, round(:rsiz/:ela,2) val
, round(:rsiz/:tran,2) val
,' Logical reads:' dscr, round(:gets/:ela,2) val
, round(:gets/:tran,2) val
,' Block changes:' dscr, round(:chng/:ela,2) val
, round(:chng/:tran,2) val
,' Physical reads:' dscr, round(hyr/:ela,2) val
, round(hyr/:tran,2) val
,' Physical writes:' dscr, round(hyw/:ela,2) val
, round(hyw/:tran,2) val
,' User calls:' dscr, round(:ucal/:ela,2) val
, round(:ucal/:tran,2) val
,' Parses:' dscr, round(rse/:ela,2) val
, round(rse/:tran,2) val
,' Hard parses:' dscr, round(:hprs/:ela,2) val
, round(:hprs/:tran,2) val
,' Sorts:' dscr, round((:srtm+:srtd)/:ela,2) val
, round((:srtm+:srtd)/:tran,2) val
,' Logons:' dscr, round(:logc/:ela,2) val
, round(:logc/:tran,2) val
,' Executes:' dscr, round(:exe/:ela,2) val
, round(:exe/:tran,2) val
,' Transactions:' dscr, round(:tran/:ela,2) val
, ' ' dscr
,' % Blocks changed per Read:' dscr, round(100*:chng/:gets,2) pctval
,' Recursive Call %:' , round(100*:recr/:call,2) bpctval
,' Rollback per transaction %:' dscr, round(100*:urol/:tran,2) pctval ,'
Rows per Sort:' , decode((:srtm+:srtd)
,0,to_number(null)
,round(:srtr/(:srtm+:srtd),2)) bpctval
from sys.dual;
其中
tran := ucom + urol;
urol := SYSDIF('user rollbacks');
ucom := SYSDIF('user commits');
transaction rollbacks与user rollbacks不是一个值么?如果是的话跟你的(transaction rollbacks)/(transaction rollbacks+user commits)不是一样的么? |
|