使用者報告前台業務響應緩慢,登陸至資料庫擷取awr報告。kill掉相關會話後系統復原,殺會話可參考metalink id 786507.1
Load Profile 除了Rollback per transaction %比較高之外,達到了95%。其他指標似乎正常。
於是進一步查看交易回復相關資訊,可以看到每秒交易回復數(transaction rollbacks)只有145.13,遠遠小於user rollbacks (2,454.12)
Statistic Total per Second per Trans
rollback changes - undo records applied 830,757 688.73 0.27
rollbacks only - consistent read gets 152,722 126.61 0.05
transaction rollbacks 175,061 145.13 0.06
transaction tables consistent read rollbacks 322 0.27 0.00
transaction tables consistent reads - undo records applied 96,665 80.14 0.03
user commits 168,522 139.71 0.05
user rollbacks 2,960,222 2,454.12 0.95
這裡需要注意的是在分散式交易中,如採用dblink擷取資料,不論使用者發出commit或者rollback,在會話統計中transaction rollbacks基數都會增加。即commit或者rollback一次
transaction rollbacks都會加1.
當使用者發出rollback命令,不論有無事務user rollbacks都會增加。從數值上來看
Rollback per transaction %應該等於user rollbacks/(user commits+user rollbacks),所以復原率高應該不會是引起效能問題的主要原因。