通过v$sesstat中的统计,统计当前session的回滚情况,如果session退出,则v$视图中就不再保存。
其中:
statistic#=4表示user commits
statistic#=5表示user rollbacks
可以从v$sysstat中查看到。
SQL语句:
select u.username,u.program,v.sid,v.value "rollback",v1.value "commit",
(v.value/(v1.value+ v.value))*100 "rollback pct"
from v$sesstat v,v$session u,v$sesstat v1
where u.sid=v.sid and v.statistic#=5 and v1.sid=v.sid and v1.statistic#=4
and v1.value>0 and v.value>0 order by 6 desc;
单独执行一条commit命令,不会记录,但单独执行一条rollback语句会记录。
所以当发现事务回滚率较高时,可能是执行了不必要的rollback命令,如在select操作之后执行了rollback。
阅读(1003) | 评论(0) | 转发(0) |