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

简介:

本节书摘来自华章计算机《Oracle数据库性能优化方法论和最佳实践》一书中的第2章,第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可检测体系的构成如下。
screenshot

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方法论的重大价值。

相关文章
|
2天前
|
存储 Oracle 关系型数据库
Oracle数据库的应用场景有哪些?
【10月更文挑战第15天】Oracle数据库的应用场景有哪些?
93 64
|
2天前
|
存储 缓存 监控
数据库优化技术:提升性能与效率的关键策略
【10月更文挑战第15天】数据库优化技术:提升性能与效率的关键策略
18 8
|
10天前
|
SQL 监控 数据库
慢SQL对数据库写入性能的影响及优化技巧
在数据库管理系统中,慢SQL(即执行缓慢的SQL语句)不仅会影响查询性能,还可能对数据库的写入性能产生显著的不利影响
|
13天前
|
SQL 存储 Oracle
Oracle数据库SQL语句详解与应用指南
在数字化时代,数据库已成为各类企业和组织不可或缺的核心组件。Oracle数据库作为业界领先的数据库管理系统之一,广泛应用于各种业务场景。掌握Oracle数据库的SQL语句是数据库管理员、开发人员及运维人员的基本技能。本文将详细介绍Oracle数据库SQL语句的基本概念、语法、应用及最佳实践。一、Or
28 3
|
8天前
|
存储 Oracle 关系型数据库
【数据库-Oracle】《Oracle 数据库探秘:基础知识点全攻略》
《Oracle 数据库探秘:基础知识点全攻略》深入介绍 Oracle 数据库的基础知识点,包括数据类型、表结构、查询语句等。通过详细讲解、代码示例和流程图,帮助读者快速掌握 Oracle 数据库的基本操作,为数据库开发和管理打下坚实基础。
19 0
|
9天前
|
关系型数据库 MySQL 数据库
深入浅出MySQL索引优化:提升数据库性能的关键
在这个数据驱动的时代,数据库性能的优劣直接关系到应用的响应速度和用户体验。MySQL作为广泛使用的数据库之一,其索引优化是提升查询性能的关键。本文将带你一探MySQL索引的内部机制,分析索引的类型及其适用场景,并通过实际案例演示如何诊断和优化索引,以实现数据库性能的飞跃。
|
10天前
|
Oracle 关系型数据库 数据库
oracle数据恢复—Oracle数据库文件损坏导致数据库打不开的数据恢复案例
打开oracle数据库时报错,报错信息:“system01.dbf需要更多的恢复来保持一致性,数据库无法打开”。急需恢复zxfg用户下的数据。 出现上述报错的原因有:控制文件损坏、数据文件损坏、数据文件与控制文件的SCN不一致等。数据恢复工程师对数据库文件做进一步检测分析后发现sysaux01.dbf文件有坏块。修复sysaux01.dbf文件,启动数据库依然有许多查询报错。export和data pump工具无法使用,查询告警日志并分析报错,确认发生上述错误的原因就是sysaux01.dbf文件损坏。由于该文件损坏,从数据库层面无法修复数据库。由于system和用户表空间的数据文件是正常的,
|
10天前
|
SQL 存储 数据库
慢SQL对数据库写入性能的影响及优化技巧
在数据库管理系统中,慢SQL(即执行缓慢的SQL语句)不仅会影响查询性能,还可能对数据库的写入性能产生显著的不利影响
|
Oracle 关系型数据库 SQL
oracle优化与可持续运行
最近很长一段时间都在优化一个项目,这个项目存在许多问题,从数据架构到工作流程,我一直在思考一些有关oracle性能优化的问题,我跟开发实施人员进行过多次交流,发现存在许多交流障碍,许多问题实施人员觉得sql语句执行很快,并不存在性能问题,我花了大量时间要他看执行计划,说明当数据积累到一定时间后,会执行越来越慢。
762 0
|
2月前
|
存储 自然语言处理 Oracle
Oracle数据库字符集概述及修改方式
【8月更文挑战第15天】Oracle 数据库字符集定义了数据的编码方案,决定可存储的字符类型及其表示方式。主要作用包括数据存储、检索及跨系统传输时的正确表示。常见字符集如 AL32UTF8 支持多语言,而 WE8MSWIN1252 主用于西欧语言。修改字符集风险高,可能导致数据问题,需事先备份并评估兼容性。可通过 ALTER DATABASE 语句直接修改或采用导出-导入数据的方式进行。完成后应验证数据完整性。此操作复杂,须谨慎处理。

推荐镜像

更多