《Oracle数据库性能优化方法论和最佳实践》——1.2 性能优化目标的确定和衡量

1.2 性能优化目标的确定和衡量

性能优化,顾名思义就是一个改善的过程,通过这个过程实现从当前A到B的目标,其中A和B必须可以被描述和衡量。其中,A为当前状态的描述和测量。B为需要达到目标状态的描述和测量。
很遗憾的是,在现实的Oracle性能优化实践中,很多情况下A和B不可描述或未被准确描述,只知道我要变快,而且是尽可能的快,最终使性能优化变成一锅乱炖。
大家都知道,性能优化的常规目标是使响应速度变快,但快和慢是相对而言的,如果两者没有一致的描述基准,那么就会产生问题。比如,如果觉得现在的系统速度慢,那就必须先弄清楚是如何衡量速度慢的,为什么这种状况就认为它速度慢了呢?以一个电信受理业务为例,客户反馈受理很慢,需要进行优化,要变快。客户只会告诉你受理慢,不会告诉你更多,其他的东西需要性能优化工作者去挖掘,比如和客户进行沟通,也许你会郁闷地发现,和你沟通的客户根本就无法说明白为什么慢,以及慢在哪里。
1.2.1 性能优化的范畴或优化对象确定
性能优化既然是改善工作,那我们首先必须知道现在在哪里,将来应该到哪里去,在改善之前这些因素必须要被确定下来。依然以电信受理业务为例,首先需要确定慢的范畴,范畴又可以分为两个层次:业务范围层和影响区域范围层。
业务范围层要确定的因素如下:
仅仅是开户受理慢,还是所有受理业务都慢?
仅仅是保存慢,还是所有步骤都慢?
仅仅是人工受理慢,还是所有受理都慢?
影响区域范围层要确定的因素如下:
是个别终端或个别区域慢,还是全局都慢?
是个别受理通道慢,还是所有的受理通道都慢?
通过这些因素最终确定业务性能优化的目标范畴,如表1-1所示。

1.2.2 性能优化目标的用户期望管理
作为一个性能优化者,必须知道“慢”是一个相对的概念,快或慢取决于期望值。笔者经常与同事介绍,作为一个开发人员或DBA,必须懂得用户的期望管理,并且应该清楚如何通过降低客户的期望来提高客户的满意度。依然以电信受理业务为例,假设其实际完成时间大约是2秒,我们请两个不同的人来描述这2秒里他们是如何管理期望值的。
第一个人对营业员说:电信受理业务非常复杂,中间要经过N个流程,每个流程都要花费一定的时间,我付出很大努力达到了业务逻辑优化,缩减了很大一部分不需要的流程,现在的性能预期良好,大约2秒钟左右可以完成受理。此时营业员脑海中就会出现一个画面,一个按钮下去,业务系统在跑N个流程,想想头都晕了。而这么多步骤2秒钟就完成了,开发商做得真到位。
轮到第二个人了,他对于自己的产品如此有信心,于是他信心满满地告诉营业员,不要担心性能问题,经过我们的优化,效果非常理想,速度很快。于是营业员满心期望着眼睛一眨结果就出来,可是等呀等,2秒钟才做完一笔受理业务。于是纷纷抱怨速度太慢,不可操作,需要进行优化。
除了快慢的期望相对性以外,不同人员的操作频率也会对快慢的期望产生重大影响,对于操作较少的业务往往可以忍受比较慢的速度,而对于频繁操作的业务则很难忍受较慢的
速度。
1.2.3 性能优化的目标衡量
对于用户来说,优化目标很容易确定,回到原来的响应速度甚至比原来的响应速度更快即可。但对于性能优化者来说,这个描述是无法定性或定量衡量优化目标的。因此需要与客户沟通,进一步把这个目标分解细化,并且是要可测量的。
对于非交互式的批处理应用,优化目标相对容易确定,一般可以用每分钟处理业务量或每个业务单元所耗费的时间来进行衡量。比如电信实时计费系统,可以用每分钟处理多少条话单来衡量优化目标指标。大部分非交互式批处理系统都具有处理业务日志系统,所以可准确衡量每分钟处理业务量;对于少量不具备日志的批处理系统,则可以采用类似作业的处理响应时间来衡量;若有无法采用以上方式衡量的情况,也可以简单通过结果比较甚至业务特征比较来完成,比如简单统计话单数量或者简单统计insert into cdr_detail values ( )语句的执行次数,或者通过统计这些批处理会话的事务数量来完成。
对于局部终端的交互式应用,由于性能影响受众有限,直接的定性描述或实际衡量的响应是一种可以接受的简单优化目标衡量方式。
对于广泛受众影响的交互式应用,其性能表现往往与吞吐量的大小有关。可以采用定性和定量结合的方式来完成优化目标衡量,如下:
吞吐量的确定。用户一般难以理解吞吐量的概念,所以可以简单采用技术性指标来描述,比如采用事务数量或特征语句的执行次数来确定吞吐量。
响应时间。响应时间又可以从定性和定量两个方面来确定,包括与部分终端使用人员交流,获得感性的响应时间来进行定性的认知以及通过特征语句的每次执行时间来进行定量的描述。除了以最终业务响应性能评价作为优化目标之外,很多优化场景仅仅是降低资源的使用,比如降低CPU消耗和I/O消耗等,这种性能优化是纯技术性操作,简单采用技术指标确定即可。
表1-2~表1-5可以用来帮助大家针对不同的业务应用类型来衡量优化目标。

时间: 2024-09-24 12:32:22

《Oracle数据库性能优化方法论和最佳实践》——1.2 性能优化目标的确定和衡量的相关文章

《Oracle数据库性能优化方法论和最佳实践》——2.6 流程、资源和组件优化方法论

2.6 流程.资源和组件优化方法论 流程.资源和组件优化方法论是本书几位作者综合多年性能优化方法论实践提出的最新的Oracle业务系统性能优化方法论.流程.资源和组件优化方法论以流程响应分析为核心,辅助以流程处理的组件和涉及的资源分析,发现导致性能问题的根本原因,并采取适当的手段进行性能改善.本书从流程.资源和组件优化方法论出发,全面构建性能优化的可测量体系,并通过大量的性能优化实践案例来验证方法论的有效性.2.6.1 吞吐量和响应时间关系曲线 吞吐量和响应时间关系曲线是流程.资源和组件优化方法

《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数据库性能优化方法论和最佳实践》——1.3 吞吐量和响应时间

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

《Oracle数据库性能优化方法论和最佳实践》——2.5 基于资源瓶颈分析的优化方法论

2.5 基于资源瓶颈分析的优化方法论 2.5.1 基于资源瓶颈分析优化方法论简述 Oracle要做优化,大部分人首先会想到瓶颈在哪里?资源瓶颈分析是如此之普及,以至于无论懂还是不懂的人都知道"瓶颈"这个术语,都知道性能优化首先要找到这个瓶颈,然后消除这个瓶颈.数据库系统的资源主要包括:CPU.内存和虚拟内存.I/O子系统.网络子系统. 绝大部分开发人员在写程序的时候都假设资源是无限的,CPU是无限快,内存是无限多,磁盘无限大并且像内存一样快,网络带宽无限并且像光速一样运行.事实上,大家

《Oracle数据库性能优化方法论和最佳实践》——1.5 测量和变化

1.5 测量和变化 1.5.1 测量和性能 没有测量就没有性能,任何科学都建立在可测量的基础之上.Oracle数据库和基于它的性能优化理所当然是一门科学,而不是一门艺术.科学的性能优化首先必须是可以建立测量的目标系统性能指标.一个无法测量的系统或者一个只能依赖于人的眼睛.耳朵等器官来进行感知的系统是无法进行性能优化的.为了完成性能优化,需要做大量的可测量性工作.幸运的是,Oracle对于可测量的性能付出了巨大的努力,使其性能相关的测量指标远远超出了其他数据库. 从性能优化的角度出发,可以从以下几

《Oracle数据库性能优化方法论和最佳实践》——1.7 Oracle性能优化的神话和误区

1.7 Oracle性能优化的神话和误区 Oracle性能优化工作是Oracle数据库科学最为神秘莫测的领域,自然也就会流传着各种传言和八卦.本书最主要的目的就是真正使Oracle性能优化成为一门严谨的科学,使任何阅读并且理解本书内容的读者可以比较简单地完成Oracle性能优化工作,使自己在其他人面前成为"巫师"或"神秘的对象".1.7.1 艺术和科学 从百度.Google等网站搜索"性能优化艺术",会出现大量的条目,部分Oracle性能优化的图

《Oracle数据库性能优化方法论和最佳实践》——1.4 Oracle性能优化工作的分类

1.4 Oracle性能优化工作的分类 在Oracle上进行性能优化时,不同场景下的优化工作方法和内容有很大的不同.下面从实践角度来展开优化工作的分类.1.4.1 上线优化或从未达到过性能期望的系统优化如果业务系统未进行充分的性能测试就上线,那么有相当一部分会出现性能问题,不会出现性能问题的系统往往建立在有强大硬件的基础之上.这类缺乏性能设计考虑的业务系统部分或全部具有以下特点.开发人员(业务系统)假设资源是无限的,可以任意使用,忘记了任何系统都是在一个资源受限的系统中运行业务.开发人员(业务系

《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数据库性能优化方法论和最佳实践》——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方法论而言,在强调响应时间时,同等强调了吞吐量的重要性,它通过衡量操作单元的响应时间而不是绝对时

《Oracle数据库性能优化方法论和最佳实践》——3.2 数据库登录流程的相关指标与优化

3.2 数据库登录流程的相关指标与优化 2.6节已经介绍过数据库登录流程的分解如下: Step 1:客户端登录请求. Step 2:listener处理和响应. Step 3:服务进程派生. Step 4:进程初始化和session初始化. Step 5:用户验证和权限判断. Step 6:session审计. Step 7:登录触发器. Step 8:响应客户端. 对于数据库登录流程来说,业务需求表述的输入请求和技术层面的输入请求完全一致.每次数据库登录都对应着一次客户端登录请求,输出响应时间