`
logicgate
  • 浏览: 98374 次
  • 性别: Icon_minigender_1
  • 来自: 新力吐皮
社区版块
存档分类
最新评论

Statspack的Rollback per transaction计算方法

阅读更多

今天研究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下载

    2. **反应式监测**:Statspack提供了一种反应式的性能监测方法,它记录的是数据库的实际运行状态,而非仅依赖于内存中的瞬时数据。 3. **成本效益**:对于拥有大量数据库的环境而言,Statspack的成本远低于OEM,因为...

    oracle statspack安装配置

    Oracle Statspack是一个强大的数据库性能分析工具,它为DBA提供了深入洞察Oracle数据库性能的能力。Statspack可以帮助用户收集和分析数据库的运行状况,从而快速定位性能问题,并为优化提供依据。以下将详细介绍...

    statspack安装

    Statspack 安装 Statspack 是 Oracle 提供的一个性能分析工具,用于收集和分析数据库性能数据。下面是 Statspack 安装的详细步骤和相应的知识点。 一、准备 1. 检查部分参数值:在安装 Statspack 之前,需要检查...

    statspack安装与分析

    Statspack是Oracle数据库中的一种性能分析工具,它可以帮助DBA(数据库管理员)快速识别系统性能瓶颈,从而进行相应的优化工作。在本篇文章中,我们将详细探讨如何安装Statspack以及如何利用它来进行性能分析。 首先...

    STATSPACK report

    - **Rollback per transaction %**: 0.07 - **Rows per Sort**: 46.02 ### 5. **实例效率百分比** - **Buffer Nowait %**: 99.47 - **Redo NoWait %**: 100.00 - **Buffer Hit %**: 77.71 - **In-memory Sort %*...

    oracle statspack

    ### Oracle Statspack详解 #### 一、Statspack简介 Statspack是Oracle自8.1.6版本开始提供的一款性能诊断工具,在8.1.7版本得到了进一步增强。尽管该工具随Oracle 8.1.6一同发布,但通过特定脚本可以使其在运行...

    STATSPACK数据分析

    STATSPACK是Oracle数据库系统中的一种性能分析工具,主要用于收集和分析数据库的运行统计信息,帮助DBA(数据库管理员)诊断性能问题、优化查询效率以及规划数据库资源的使用。STATSPACK报告是其核心功能之一,它...

    ORACLE STATSPACK

    ### ORACLE STATSPACK:深入理解与应用 #### 一、概述 Statspack是一款功能强大的性能分析工具,它由Oracle官方提供,免费且内置在Oracle数据库中。通过使用Statspack,DBA(数据库管理员)可以收集数据库运行时的...

    statspack完整使用手册

    statspack完整使用指南: 包括: statspack的安装; statspack的自动数据收集; statspack的门限调整; statspack的报表自动产生与邮件发送(aix环境下); statspack的报表详细解析.

    Statspack分析报告详解

    总的来说,Statspack是数据库性能调优的重要工具,通过理解其报告结构和分析方法,DBA可以更有效地诊断和解决Oracle数据库的性能问题。在日常运维中,应定期利用Statspack进行性能监控,以确保数据库高效稳定运行。

    session级别的statspack

    Statspack通过收集一系列统计信息,包括SQL执行时间、等待事件、块I/O等,为我们提供了一种量化性能的方法。 Session级别的Statspack分析,主要关注的是特定会话的行为。当我们在数据库环境中遇到某个特定用户或...

    Oracle STATSPACK高性能调整

    3. **SQL优化**:针对高耗时的SQL语句进行优化,可能的方法包括重写SQL、使用索引、调整表分区、优化表连接策略等。 4. **调整数据库参数**:根据STATSPACK报告中的资源使用情况,调整数据库参数以适应工作负载,...

    statspack.doc

    - `Rollback per transaction %`:每个事务回滚的百分比,0.98% 表示回滚操作相对较少。 - `Rows per Sort`:每次排序操作处理的平均行数。 通过这些信息,可以深入分析数据库的运行状况,识别潜在的性能瓶颈,...

    如何解读oracle_statspack 报告

    Oracle StatsPack 是Oracle数据库系统中一个强大的性能分析工具,它为DBA提供了详细的数据库性能统计数据,帮助诊断和优化系统的性能问题。StatsPack 报告包含了丰富的信息,可以帮助我们理解数据库的运行状态,找出...

    oracle中的高级运用statspack

    Oracle中的Statspack是一种强大的性能分析工具,尤其在大型企业如电信运营商的BSS(Business Support Systems)系统中,它在BOSS(Business Operation Support Systems)开发中扮演着至关重要的角色。Statspack是...

    Oracle9i STATSPACK 高性能调整

    Oracle9i STATSPACK 是一个强大的性能分析工具,专为Oracle数据库系统提供高效能的调优支持。在Oracle 9i版本中,STATSPACK扮演了至关重要的角色,帮助DBAs(数据库管理员)识别和解决性能瓶颈,确保系统的稳定运行...

    Statspack工具

    ### Statspack工具详解 #### 一、概述 Statspack是Oracle数据库性能监控和诊断的有力工具,它通过收集和分析数据库实例的统计信息,帮助DBA(数据库管理员)定位和解决性能瓶颈。Statspack报告提供了关于数据库...

    详解oracle9i Statspack安装&使用

    Oracle 9i Statspack 是一个强大的性能分析工具,它提供了对数据库性能的深入洞察,帮助DBA们诊断和优化数据库的运行效率。Statspack 的安装和使用是数据库管理中的重要环节,尤其对于监控和问题排查至关重要。以下...

    Oracle STATSPACK高性能调整技术

    Oracle STATSPACK是一种强大的性能分析工具,主要用于诊断和优化Oracle数据库的运行效率。它由Oracle在9i版本中引入,后来在10g及更高版本中被Automatic Workload Repository (AWR)所取代,但即便如此,STATSPACK...

Global site tag (gtag.js) - Google Analytics