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

相关文章
|
20天前
|
Oracle 关系型数据库 Linux
【赵渝强老师】Oracle数据库配置助手:DBCA
Oracle数据库配置助手(DBCA)是用于创建和配置Oracle数据库的工具,支持图形界面和静默执行模式。本文介绍了使用DBCA在Linux环境下创建数据库的完整步骤,包括选择数据库操作类型、配置存储与网络选项、设置管理密码等,并提供了界面截图与视频讲解,帮助用户快速掌握数据库创建流程。
201 93
|
20天前
|
缓存 关系型数据库 BI
使用MYSQL Report分析数据库性能(下)
使用MYSQL Report分析数据库性能
56 3
|
3月前
|
存储 Oracle 关系型数据库
服务器数据恢复—光纤存储上oracle数据库数据恢复案例
一台光纤服务器存储上有16块FC硬盘,上层部署了Oracle数据库。服务器存储前面板2个硬盘指示灯显示异常,存储映射到linux操作系统上的卷挂载不上,业务中断。 通过storage manager查看存储状态,发现逻辑卷状态失败。再查看物理磁盘状态,发现其中一块盘报告“警告”,硬盘指示灯显示异常的2块盘报告“失败”。 将当前存储的完整日志状态备份下来,解析备份出来的存储日志并获得了关于逻辑卷结构的部分信息。
|
12天前
|
数据采集 数据可视化 数据挖掘
阿里云瑶池数据库 Data Agent,数据安全,分析准确,让数据更有价值!
Data Agent 是阿里云瑶池数据库推出的智能数据体产品,融合 Data+AI 与 Agentic AI 技术,覆盖数据全生命周期。支持多源数据接入,可自主规划分析任务、生成代码并输出可视化洞察报告,让业务人员零门槛获取专业级分析结果,助力企业高效实现数据驱动决策。
|
20天前
|
缓存 监控 关系型数据库
使用MYSQL Report分析数据库性能(上)
最终建议:当前系统是完美的读密集型负载模型,优化重点应放在减少行读取量和提高数据定位效率。通过索引优化、分区策略和内存缓存,预期可降低30%的CPU负载,同时保持100%的缓冲池命中率。建议每百万次查询后刷新统计信息以持续优化
82 6
|
20天前
|
缓存 监控 关系型数据库
使用MYSQL Report分析数据库性能(中)
使用MYSQL Report分析数据库性能
75 1
|
20天前
|
缓存 Java 应用服务中间件
Spring Boot配置优化:Tomcat+数据库+缓存+日志,全场景教程
本文详解Spring Boot十大核心配置优化技巧,涵盖Tomcat连接池、数据库连接池、Jackson时区、日志管理、缓存策略、异步线程池等关键配置,结合代码示例与通俗解释,助你轻松掌握高并发场景下的性能调优方法,适用于实际项目落地。
217 4
|
1月前
|
SQL Oracle 关系型数据库
Oracle数据库创建表空间和索引的SQL语法示例
以上SQL语法提供了一种标准方式去组织Oracle数据库内部结构,并且通过合理使用可以显著改善查询速度及整体性能。需要注意,在实际应用过程当中应该根据具体业务需求、系统资源状况以及预期目标去合理规划并调整参数设置以达到最佳效果。
105 8
|
3月前
|
SQL Oracle 关系型数据库
比较MySQL和Oracle数据库系统,特别是在进行分页查询的方法上的不同
两者的性能差异将取决于数据量大小、索引优化、查询设计以及具体版本的数据库服务器。考虑硬件资源、数据库设计和具体需求对于实现优化的分页查询至关重要。开发者和数据库管理员需要根据自身使用的具体数据库系统版本和环境,选择最合适的分页机制,并进行必要的性能调优来满足应用需求。
132 11
|
3月前
|
机器学习/深度学习 SQL 运维
数据库出问题还靠猜?教你一招用机器学习优化运维,稳得一批!
数据库出问题还靠猜?教你一招用机器学习优化运维,稳得一批!
107 4

热门文章

最新文章

推荐镜像

更多