• 1. Oracle数据库性能优化实务 第一讲:性能优化概述主讲人:白鳝华章培训网、[www.hztraining.com]华章培训网版权所有
  • 2. 课程简介第2页了解Oracle数据库性能优化的主要技术 掌握Oracle数据库性能优化的方法 了解优化项目的组织方式及实施方法 掌握优化项目中沟通的技巧 分析大量的实际案例 大部分技术以Oracle 10g为蓝本,大多数适用于8.0-11G
  • 3. 学习建议第3页在学习本课程前最好读过《oracle concepts》 完成本课程后再次阅读《oracle concepts》会有更大的收获 本课程适合对Oracle数据库管理有一定经验的DBA学习 更注重于方法,而不仅仅限于技术 参考书籍《Oracle优化日记》 老白的技术论坛:www.oraclefans.cn
  • 4. Oracle性能优化的发展历史第4页80年代:通过SQL优化(唯一手段) 80年代中期到90年代中期:通过命中率调整 90年代中到2001开始:通过OWI 2001年:出现响应时间模型 2005年:出现ASH(10g) 2007年:事务回放技术(11G)
  • 5. 准备知识-响应时间分析
  • 6. 准备知识-优化域
  • 7. Oracle性能优化的方法应用分析:通过对应用中的SQL语句及算法的分析解决性能问题 命中率分析:传统的分析方法,无法明确反映出系统的实际情况 Wait Event分析:可以针对性的解决性能问题
  • 8. 性能优化的一般流程
  • 9. 性能问题被发现的渠道客户投诉 可以立即进行分析,并且获得第一手的资料 实时监控 需要工具支持 事后分析 较难得到第一手的分析数据,需要较高的技能 STATSPACK/AWR报告可以提供一些信息 Oracle 11G提供的新功能对事后分析有很大帮助 10g的ash报告是十分重要的报告 基线数据十分重要
  • 10. 问题系统的主要症状关键业务受到了影响 系统刚刚做过调整(比如升级等) 系统整体性能不佳 某些关键流程比较慢 存在突发的负载增加 某项系统资源存在瓶颈
  • 11. 数据采集的方法交互式采集:实时采集生产系统的状态,很多监控工具支持这种采集手段 历史数据采集:定期定时采集数据,以便做后续分析
  • 12. 数据采集的频率短间隔数据采集 可以采集到更为细致的数据 对系统的资源消耗较大,需要更大的数据存储空间 趋势分析和处理数据的开销较大,除非有分析工具 长间隔数据采集 可以看到中长期的趋势以及概貌性的状态 可能会忽略掉突发性事件以及潜在的关键点 如果问题十分严重,并且时可重复的,不会被忽略 建议 平时数据采集间隔不宜过短,发现问题时再调整采集间隔
  • 13. 监控当前状态 近期状态 历史状态 系统特性:负载、资源、应用特性 系统变化和节奏
  • 14. 识别系统资源消耗情况 主要资源瓶颈 主要等待事件 TOP SQL
  • 15. 分析分析生产环境的整体情况 发现系统存在的瓶颈 主要等待事件产生的原因 如何降低TOP SQL的资源开销
  • 16. 优化调整OS性能 调整IO性能 调整数据库性能 调整SQL语句 调整SQL访问方式(表连接、索引等) 调整对象设计 调整应用系统结构
  • 17. 测试和验证客户反馈 资源消耗情况的改变 响应时间和并发事务数 SQL访问路径
  • 18. 趋势分析对一定时间内的数据进行分析 关注数据变化情况 关注变更的频率和节奏 峰值 发展趋势
  • 19. 优化中的文档文档是重要的沟通工具 文档使客户理解你的思路 介绍性的PPT,分析图表和规范化服务文档都可以提高沟通的效果 不要做过于泛泛或者无根据的结论 要十分清晰的表述你的观点 用数字来说明一切 不宜长篇大论
  • 20. 文档举例简介: 从很高的角度概括本次调优的目标和任务,以及工作范围。并且给出总体的结论 目标和任务 你的主要任务以及已经完成的任务 性能综述 性能分析的主要结论 详细性能分析 操作系统性能分析、存储性能分析、数据库性能分析、应用性能分析等详细分析结果 参考资料 引用的资料,包括官方文档、专家意见、相关成功案例等能够帮助你说服你的客户的资料
  • 21. 处理性能问题的主要步骤1、首先不要让系统宕机 2、明确你的目标 3、了解你能够获得的其他支持力量 4、记录下当前的性能详细情况 5、安装工具 6、制定一个简单可行的沟通机制(和各方面的) 7、定位故障 8、快速分析,提出解决方案 9、实施优化方案 10、效果评估,如果没有达到目的,重复7-9 11、用文档记录下这个成功案例
  • 22. 诊断工具(1) OS诊断工具vmstat :CPU使用率,内存情况 sar -d,iostat:IO情况 top/topas:高消耗资源的进程 swapinfo: swap区 OSW/NMON等OS监控工具 其他工具(比如HP glance等) DBA可以自己编写一些小工具
  • 23. 诊断工具(2) RDBMS工具ALERT LOG/TRACE STATSPACK/AWR/ADDM/ASH OEM PERFORMANCE MANAGER ORADEBUG SQL_TRACE、EVENT:10046/10053 RDA Oracle系统视图 v$sysstat,v$sgastat,v$system_event v$session,v$sesstat,v$session_event,v$session_wait
  • 24. 诊断工具(3) 应用分析ADDM/AWR/ASH OEM TOPSQL OEM TOP SESSION SQL ANALYZE ORACLE EXPERT PL/SQL PROFILER TKPROF/TRCA SQLA (METALINK上可下载)
  • 25. 小结-通过一个案例学习分析问题的思路如果突然CPU使用率100%,应用系统出现大量阻塞,怎么办?检查ALERT LOG是否有异常通过TOP/TOPAS检查是否有进程消耗了过多的资源检查操作系统的IO、SWAP等情况是否有异常检查V$SESSION_WAIT主要等待事件是什么检查V$SESSION中ACTIVE会话的数量检查V$SESSION中ACTIVE会话正在执行的SQL情况检查SQL的情况定位故障原因,通过重新分析相关表和索引解决问题询问开发人员,确定昨晚做了表分析
  • 26. 下节预告:OWI分析介绍OWI分析的主要方法 介绍OWI分析在10G中的增强功能
  • 27. 感谢您对华章培训网的支持!http://www. hztraining.com