《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优化方法论可以采用下面的简单公式来描述:
响应时间(Rt)=服务时间(Ts) + 等待时间(Tw)
Rt = Response time
  = Ts + Tw = Time for Service + Time for Wait
  = St + Wt = Service Time + Wait Time
  = St + Qt = Service Time + Queue Time
Ts = Service Time
  = CPU Time
  = Oracle Kernel code execution time
Tw = Wait Time
  = Queue Time
  = Oracle Wait event time
  = iowait + Networkwait + concurrencywait + otherwait
RTA是流程改善(性能优化)的最佳利器。流程最基本的单元是SQL,其次是事务。我们可以进一步把统计上升到session和全局。Oracle 9i仅实现了基于session和系统全局的RTA,还没有完整的流程概念。Oracle 10g完全确定了时间分析模型,特别是Oracle 10g引进了接近实时的业务流程跟踪(v$active_session_history),可以很好地完成RTA。
Oracle 11gR2中RTA可检测体系的构成如下。

Oracle在v$sys_time_model和v$sess_time_model中给出了以下不同阶段和操作的响应时间指标:
DB time;
DB CPU;
background elapsed time;
background cpu time;
sequence load elapsed time;
parse time elapsed;
hard parse elapsed time;
sql execute elapsed time;
connection management call elapsed time;
failed parse elapsed time;
failed parse (out of shared memory) elapsed time;
hard parse (sharing criteria) elapsed time;
hard parse (bind mismatch) elapsed time;
PL/SQL execution elapsed time;
inbound PL/SQL rpc elapsed time;
PL/SQL compilation elapsed time;
Java execution elapsed time;
repeated bind elapsed time;
RMAN cpu time (backup/restore)。
Oracle在v$sqlstat中标记了关于SQL语句的响应时间指标:
CPU_TIME;
ELAPSED_TIME;
AVG_HARD_PARSE_TIME;
APPLICATION_WAIT_TIME;
CONCURRENCY_WAIT_TIME;
CLUSTER_WAIT_TIME;
USER_IO_WAIT_TIME;
PLSQL_EXEC_TIME;
JAVA_EXEC_TIME。
Oracle在v$active_session_history中实现了基于近实时的流程流逝过程,特别是在11gR2版本中已经完全实现基于session的逐条SQL的时间流逝。下面是v$active_session_history关于SQL实时执行的相关信息:
SQL_ID;
WAIT_TIME;
SESSION_STATE;
SQL_EXEC_ID;
SQL_EXEC_START;
Time Model;
IN_CONNECTION_MGMT;
IN_PARSE;
IN_HARD_PARSE;
IN_SQL_EXECUTION;
IN_PLSQL_EXECUTION;
IN_PLSQL_RPC;
IN_PLSQL_COMPILATION;
IN_JAVA_EXECUTION;
IN_BIND;
IN_CURSOR_CLOSE;
IN_SEQUENCE_LOAD;
TM_DELTA_TIME;
TM_DELTA_CPU_TIME;
TM_DELTA_DB_TIME。
在视图v$metric中Oracle实现了大量的响应时间统计指标。
2.3.2 RTA方法论的不足和改善
通过RTA的优化方法,虽然Oracle认识到性能优化事实上就是流程改善,但是直到现在,Oracle并没有清晰地体现出流程的概念,也没有真正认识到数据库业务流程仅是全局性业务流程的一部分,要完成复杂的全局性业务优化,还需要付出艰辛的努力。相信随着Oracle版本的不断更新,RTA方法论会越来越成熟。
目前11gR2版本的RTA依然没有拓展到End to End RTA,使其面临多层软件体系和复杂网络体系的性能不足。End to End RTA的表示公式如下:
Rt = End to End Response Time
  = DB Time + Tier Time
  = CPU Time + Queue Time + Tier Queue Time
目前RTA优化方法论的最为重大的问题在于,无法衡量一个轻载系统和一个重载系统的区别,这样在优化过程中很容易就会重新走到OWI方法之上,RTA方法论只是成为一个引导甚至是噱头。其中根本性的问题在于,目前的RTA方法论没有把输入变量引入RTA方法论中,没有建立一定的上下文,最终导致RTA方法论的落地比较艰难。再来看吞吐量和响应时间曲线图,目前的RTA还没有从根本上认识到这张图给予RTA方法论的重大价值。

时间: 2024-12-23 09:41:01

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

《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数据库性能优化方法论和最佳实践》——第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倍,但不合理的索

Oracle数据库性能模型

原文转自:http://www.hellodb.net/2010/06/db-performance-analysis.html 最近一直在思考一个问题:如何为一个数据库建立性能模型?作为一名DBA来说,我们面临的一个巨大挑战是:如何保证数据库的性能可以满足快速变化的应用的需求,如何在数据量和访问量持续增长的情况下,保证应用的响应时间和数据库的负载处在合理的水平下.我们可能会经常面对以下的问题:某个SQL每秒要执行100次,响应时间是多少?某个应用发布后,对数据库的影响如何?所以,评估应用对数据