今天研究statspack report,发现load profile中有一项Rollback per transaction居然高达70%。如此高的回滚率,应用程序方面应该是出现了很多错误,导致事务被回滚。但我检查了应用程序的日志,却没有发现任何问题。于是google了一下,发现原来问题是出在statspack计算Rollback per transaction的公式上面。
1。Oracle中的rollback分成两种,user rollback和transaction rollback。只要是用户发出rollback命令,无论是否真的有数据回滚,user rollback都会增加。但transaction rollback只有发生了真正的回滚才会增加。测试如下:
SQL> select name, value from v$sysstat where name in ('user rollbacks', 'transaction rollbacks');
NAME VALUE
------------------------------ ----------
user rollbacks 6800
transaction rollbacks 5
SQL> rollback;
Rollback complete.
SQL> rollback;
Rollback complete.
SQL> select name, value from v$sysstat where name in ('user rollbacks', 'transaction rollbacks');
NAME VALUE
------------------------------ ----------
user rollbacks 6802
transaction rollbacks 5
SQL> create table test (id int);
Table created.
SQL> insert into test values (1);
1 row created.
SQL> rollback;
Rollback complete.
SQL> select name, value from v$sysstat where name in ('user rollbacks', 'transaction rollbacks');
NAME VALUE
------------------------------ ----------
user rollbacks 6803
transaction rollbacks 6
2。Statspack中计算Rollback per transaction的公式为:Rollback per transaction% = user rollback/(user rollback+user commit);
3。一些ORM实现会在成功commit之后发出一个rollback的命令(这个还不知道是为什么)。这样就会产生大量并没有实际数据回滚的user rollback。
综合以上原因,就导致了很高的Rollback per transaction%。虽然对实际性能没有什么影响,但会给分析者带来一种错觉。而真正对性能有影响的Rollback per transaction%,计算公式应当为:
Rollback per transaction% = transaction rollback/(transaction rollback+user commit);
分享到:
相关推荐
statspack statspack statspack statspack
statspack完整使用指南: 包括: statspack的安装; statspack的自动数据收集; statspack的门限调整; statspack的报表自动产生与邮件发送(aix环境下); statspack的报表详细解析.
statspack安装与分析
statspack Oracle数据库下载
statspack安装
一个电信数据库的STATSPACK分析 .
Statspack工具
Oracle提供的statspack是一个很强大的工具,通过Statspack,可以 收集系统信息,诊断数据库故障、顺利确定Oracle数据库的瓶颈所在,记录数据库性能状态。
细化解析oracle 10g statspack 细化解析oracle 10g statspack
你采集了oracle的statspack,但是你对statspack全面细致地了解吗,这个报告详细解释了相关参数和该注意的地方.
详细解读 STATSPACK 报告
Statspack报告如何分析和生产等,主要是怎么利用该工具去分析性能瓶颈
Statspack是一款功能强大的,免费的,oracle自带的性能分析工具。需要用具有sysdba权限的用户登陆进行安装。
找了好久的书,终于找到了,发上来共享下。Oracle STATSPACK高性能调整技术 。
主要从STATSPACK 的3个方面去分析oracle数据库性能的问题
statspack大家都有用吧. 哪session级别的呢? 有用过吗?
Oracle STATSPACK高性能调整技术
详细介绍oracle 9i statspack的安装与使用
详细解读 STATSPACK 报告详细解读 STATSPACK 报告详细解读 STATSPACK 报告详细解读 STATSPACK 报告详细解读 STATSPACK 报告详细解读 STATSPACK 报告详细解读 STATSPACK 报告