《Oracle数据库性能优化方法论和最佳实践》——2.4 基于工作单元的响应时间分析优化方法论

2.4 基于工作单元的响应时间分析优化方法论

2.4.1 UOWTBA优化方法论的导入
在RTA工作方法论的基础上,Craig Shallahamer结合吞吐量和响应时间关系曲线图提出了基于工作单元的响应时间分析方法论(Unit of Work Time Based Analyze,UOWTBA或者Unit of Response Time Analyze,UOWRTA)。UOWTBA方法论相较于RTA方法论而言,在强调响应时间时,同等强调了吞吐量的重要性,它通过衡量操作单元的响应时间而不是绝对时间来完成性能优化。
工作单元的最简单说法就是某个特定操作粒度之上的操作,比如一次逻辑读、一次物理读、一次latch gets、一次mutex gets、一次parse call等。工作单元的粒度根据需要分析的场景而定,相对来说,由于工作单元的时间响应需要作为顶层业务作业的可比较单元,所以需要选择相对基础的细粒度工作。
再次来看吞吐量和响应时间关系曲线。
吞吐量和响应时间关系曲线极为明确地揭示了一个本质现象:任何输出响应时间都是在特定的输入吞吐量下才会表现出其业务价值的。UOWTBA优化方法论强调了输入吞吐量单元,其响应时间总是标记为单个输入吞吐量单元的响应时间。
性能优化的目标就是延长曲线突变点,从而使其可以获得更高的吞吐量。TBA关键的问题在于缺乏衡量吞吐量的基础标准,或者对于每个业务系统都具有其特定吞吐量描述,这样就给TBA分析带来巨大的困难。比如CRM业务系统,其标准吞吐量为:每小时5000个受理、20000个开通等描述,但会发现你无法把这些描述和数据库的监控关联起来。
Oracle数据库有很多标记吞吐量的指标变量,比如executes、user calls、transactions等,事实上,Oracle 11gR2的RTA方法论中也涉及了衡量基于executes、user calls、transactions等输入吞吐量的输出响应时间。大家可以很明显地看到,虽然从业务输入层面上transactions、executes都是可以感知的输入吞吐量的,但是execute和execute、transactions和transaction之间的个体差异太大,使其输入吞吐量缺乏一致性比较的基础。比如执行10万次的SQL语句“select from dual”自然无法和执行10万次的SQL语句“select from dba_objects”相比较。transactions也是同样的道理,除了一些业务极为均匀的系统外,无法作为吞吐量输入衡量的基础。
为了获得一个通用的业务特征和吞吐量的描述,笔者在TBA的基础之上进行了进一步的研究,希望获得更好的描述访问特征和访问能力的监控指标,以更有效地完成TBA分析。Craig A. Shallahamer的研究成果正好和我所寻求的方向一致,基于工作单元的TBA分析方法可以很好地弥补TBA方法的不足。
2.4.2 输入吞吐量指标的选择
衡量任何一个业务系统的运行性能,可以从两个基本方面来进行考察:访问特征和访问能力。
访问特征体现了业务系统运行的负载特征,主要用来衡量吞吐量。当一个业务系统的访问特征发生了变化,特别是其访问特征预期在吞吐量突变点之上时,可以判断业务系统的性能将会发生变化。或者说业务系统的访问特征发生了明显的变化,可以猜测以下两点正在发生:
1)有新的业务正在加入,需要引起关注。
2)原有业务的访问特征发生了变化,可能会引起重大的性能问题。
访问能力体现了业务系统运行的响应时间特性,主要用来衡量响应时间。一个性能表现良好的系统,响应时间或者访问能力必须控制在可接受的范围之内,否则就表示业务系统性能不佳。
数据库应用系统在考虑数据库黑盒子的情况下,可以用两个基本性能指标来衡量访问特征和访问能力:LIO(逻辑I/O)和PIO(物理I/O)。Craig A. Shallahamer就是选择了LIO和PIO作为输入吞吐量操作单元,尤其是LIO输入指标。一般来说,数据库应用运算量很小,绝大部分数据库应用的运算转换消耗可以忽略不计,LIO基本可以代表CPU资源的消耗运行。
任何业务系统在不考虑运行和网络交互的情况下,都可以归类为两类基本的操作:LIO和PIO。每个业务系统不管其业务模式如何变化,SQL语句如何多变,其最终有效性都可以通过这两个指标来衡量。以每秒或者每分钟多少个LIO和PIO来衡量业务特征,LIO和PIO的数量和两者之间的比例就构成了现有业务系统的运行特征,而LIO和PIO具有相互转换的关系甚至可以归结为一个衡量业务系统运行的指标。
在引入LIO和PIO两个核心输入吞吐量指标之后,就可以构建UOWTBA响应时间分析方法论的基本形态。
访问特征:每秒运行的LIO和PIO数量。
访问能力:每个LIO和PIO的响应时间。
辅助描述:Transactions,User Calls,Execute数量。
响应时间(LIO)= 服务时间 + 等待时间
响应时间(PIO)= 服务时间 + 等待时间
对于PIO来说,可以进一步分解为:响应时间(PIO) = 服务时间 + I/O服务时间 + 其他等待时间。
再次查看吞吐量和响应时间曲线,以及图2-4基于输入吞吐量PIO的响应时间曲线。

可以看出,UOWTBA和TBA最根本的区别在于,UOWTBA分析对吞吐量的描述比标准TBA分析更加清晰,使基于业务的TBA分析可以简单地转化为基于技术的TBA分析。
2.4.3 采用UOWTBA优化方法工作
简单观察基于输入吞吐量LIO或者PIO的响应时间曲线,从工作单元分析可以发现存在三类问题。
1)LIO或者PIO在没有达到基线标准的情况下发生了性能变异。
2)LIO或者PIO在达到或者超过基线标准的情况下发生了性能变异。
3)LIO或者PIO的特征发生了变化,从而导致了性能变异。
不同的性能问题可以有不同的考虑方向。
第一类问题:可以考虑配置变更或者资源提供者发生了故障,比如存储电池故障会导致cache失效。
第二类问题:期望的性能异变,可以从降低业务运行特征的数量(LIO和PIO)来考虑问题,使其回到突变点之下,并重新建立吞吐量突变曲线。这种变异基本可以考虑以下三个不同原因。
1)业务量发生变化。
2)数据规模发生变化。
3)访问的终端数量发生变化。
第三类问题:基本可以考虑两个原因。
1)原有业务的访问特征发生变化,比如SQL语句的执行计划发生变化。
2)有新的业务加入。
从以上分析可以看出,与TBA方法论的缺乏落地能力总是会导入OWI方法不同,UOWTBA优化方法论比较容易使用,很容易就可以获得系统出现性能问题的根本原因,从而进行高效率的性能优化工作。
UOWTBA优化方法论是本书介绍的核心工作方法之一,后面章节会引入更多的输入吞吐量压力描述,并且把UOWTBA优化工作方法全面作用在流程、资源和组件之中。

时间: 2025-01-21 07:06:46

《Oracle数据库性能优化方法论和最佳实践》——2.4 基于工作单元的响应时间分析优化方法论的相关文章

《Oracle数据库性能优化方法论和最佳实践》——1.3 吞吐量和响应时间

1.3 吞吐量和响应时间 吞吐量和响应时间是衡量Oracle业务系统的基本指标,也是业务系统性能的终极指标.如何选择恰当的指标单元来描述吞吐量和响应时间,并且熟练运用吞吐量和响应时间之间的关系是性能优化工作者最为重要的学习和实践.吞吐量和响应时间的关系曲线如此重要,以至于本书几乎所有的章节都是为了帮助大家更好地选择恰当的吞吐量指标,以及更好地理解吞吐量和响应时间的关系曲线.Oracle虽然从Oracle 10gR1就开始提供Time Based Analyze(TBA)性能优化分析方法论,但显然

《Oracle数据库性能优化方法论和最佳实践》——2.3 响应时间分析优化方法论

2.3 响应时间分析优化方法论 2.3.1 RTA方法论简述 响应时间分析(Response Time Analyze,RTA)的性能优化方法论是基于OWI的性能优化方法论发展起来的,标志着Oracle开始认识到Oracle性能优化其实就是一个流程改善的过程(减少响应时间),首次在性能优化上跳出了IT设备的观点,从业务流程优化的角度来考虑问题.在任何场合下,流程改善或者性能优化最为适当的方法就是RTA. Oracle从9.2版本开始提供RTA,在Oracle 10g中进行了进一步的完善.RTA优

《Oracle数据库性能优化方法论和最佳实践》——第2章 Oracle性能优化方法论的发展 2.1 基于局部命中率分析的优化方法论

第2章 Oracle性能优化方法论的发展 Oracle数据库在开发和使用过程中对数据库的性能优化极为重视,几乎在每个版本的更新中都会对可优化的数据库做出改善.不仅如此,Oracle数据库还会使用优化方法来指导性能优化,会不断推出新的性能优化方法论,并依据优化方法论持续完善其可观察的性能优化体系.从Oracle 6到现在的Oracle 12c,经历了Oracle 7.Oracle 8.Oracle 8i.Oracle 9i & R2.Oracle 10gR1 & R2.Oracle 11gR

《Oracle数据库性能优化方法论和最佳实践》——第1章 Oracle性能优化漫谈 1.1 从生活场景漫谈性能优化

第1章Oracle性能优化漫谈 1.1 从生活场景漫谈性能优化 Oracle数据库性能优化一直是一个让人既胆怯又兴奋的话题,在初级DBA眼里,这是一个神秘的领域,即使是资深的Oracle DBA,也可能无法描述清楚性能优化究竟要做什么,应达成什么目标.那么性能优化究竟是做什么的呢?简而言之,性能优化就是让我们的工作速度变快,快到让我们满意为止.自然,又有读者会问了,我们的工作是什么呢?什么程度才算快,是否可以衡量?看,头疼的问题又来了.1.1.1 从一个真实病例说起 下面是本人的真实经历,也许很

对Oracle数据库性能优化技术的研究

大型关系数据库Oracle已经广泛应用于各行各业,如政府.交通.公安.电信.金融.能源等部门,并已逐渐成为企业信息化建设的重要数据库平台,但随着 Oracle 数据库规模的扩大,数据库用户人数的增加,数据库性能问题越来越突出,因此,有必要对 Oracle 数据库性能进行调整与优化, 使之在满足需求条件下,系统性能达到最佳和系统开销最小. 1.性能优化目标 1.1 缩短响应时间 响应时间是指从用户提交SQL语句到数据库返回结果集的第一行数据所需要的时间,缩短响应时间可以通过减小系统服务时间或用户等

Oracle数据库性能优化技术开发者网络Oracle_oracle

正在看的ORACLE教程是:Oracle数据库性能优化技术开发者网络Oracle.介绍:细处着手,巧处用功.高手和菜鸟之间的差别就是:高手什么都知道,菜鸟知道一些.电脑小技巧收集最新奇招高招,让你轻松踏上高手之路.  摘要: Oracle数据库是当前应用最广泛的大型数据库之一,而其性优化直接关系到系统的运行效率.本文以数据库性能优化的基本原则为出发点,阐述了在数据库设计阶段如何避免竞争和如何优化数据访问,在数据库运行阶段如何从操作系统和数据库实例级别上调整内存和I/O来达到数据库性能优化的各种技

【性能优化】ORACLE数据库性能优化概述

   为了保证ORACLE数据库运行在最佳的性能状态下,在信息系统开发之前就应该考虑数据库的优化策略.优化策略一般包括服务器操作系统参数调整.ORACLE数据库参数调整.网络性能调整.应用程序SQL语句分析及设计等几个方面,其中应用程序的分析与设计是在信 分析评价ORACLE数据库性能主要有数据库吞吐量.数据库用户响应时间两项指标.数据库吞吐量是指单位时间内数据库完成的SQL语句数目:数据库用户响应时间是指用户从提交SQL语句开始到获得结果的那一段时间.数据库用户响应时间又可以分为系统服务时间和

ORACLE数据库性能优化

实际上,为了保证ORACLE数据库运行在最佳的性能状态下,在http://www.aliyun.com/zixun/aggregation/32730.html">信息系统开发之前就应该考虑数据库的优化策略.优化策略一般包括服务器操作系统参数调整.ORACLE数据库参数调整.网络性能调整.应用程序 SQL语句分析及设计等几个方面,其中应用程序的分析与设计是在信息系统开发之前完成的. 分析评价ORACLE数据库性能主要有数据库吞吐量.数据库用户响应时间两项指标.数据库吞吐量是指单位时间内数据

oracle数据库性能优化方案精髓整理收集回顾

oracle数据库性能优化总体法则: 一.减少数据访问(减少硬盘房访问次数) 二.返回更少的数据(减少网络传输或磁盘访问) 三.减少交互次数(减少网络传输) 四.减少服务器开销(减少cpu及内存开销) 五.利用更多的资源(增加资源) ===================具体说明================= 一.减少数据访问(减少硬盘房访问次数) 1.减少数据访问 1.1.创建并使用正确的索引 索引会大大增加DML(增删改)的开销[合理的索引会大大提高效率100倍.1000倍,但不合理的索