简介
对于一些处理要求复杂的软件项目来说,开发人员应该在编码阶段注意每个语句的编写规范与基于Oracle环境的必须注意的问题。
目前许多应用系统的开发阶段到测试阶段的时间都很短,导致Oracle系统投入使用后不久就开始遇到性能逐步下降问题,许多针对性能问题的优化方法在网上已经很多了,我们的现在要做的事:每个编程人员在开发阶段如果都按照规范和Oracle公司推荐的方法去做,维护阶段性能问题就少许多。
本课程就是基于这样的思想,我们根据多年的经验,为软件开发人员(包括测试人员)给出基于Oracle系统的编程优化方法介绍,为那些最辛苦的一线编程人员提供一点技巧参考。
Oracle 11g/12c 系统性能问题可能是数据量太大导致的,也可能是我们编程时使用SQL语句不当导致的,那么,如何才能避免使用不当呢?下面样例可帮助你理解Oracle 系统SQL的使用方法。
目标
l Oracle环境应用程序优化方法
l Oracle环境应用系统测试方法
l Oracle环境应用系统性能问题诊断与调整方法
课程时长
3天(18H)
受众人群
基于Oracle环境的软件开发人员、基于Oracle 系统的软件测试人员、Oracle 数据库管理人员、Oracle 数据库最终用户相关人员、Oracle 系统应用维护人员
学员要求
参与学习的技术人员应该具有SQL 基本知识,特别是SELECT 语句、PL/SQL 的基本编程方法、了解Oracle 数据库的基本架构、了解RDBMS的基本概念。
分享提纲
1.Oracle应用优化与工具 | 了解基于Oracle环境的性能诊断方法非常关键,开发人员和优化工程师可使用你最喜欢而且又是得力的工具,可帮助你快速定位性能问题的根源。 | l SQL*Plus 环境 ; l DBA_xxx数据字典; l V$_xxx / X$_xxx 性能视图介绍 ; l 附加的数据字典概要 ; l Oracle 系统诊断工具 ; l Statspack与AWR 视图; l Unix 环境的常用命令; l 第三方诊断工具 。 |
2.Oracle应用优化与SQL规范基础 | 当我们完成软件项目的数据库结构设计后,即可进入应用编码阶段,如果开发团队的每个编码人员都遵守必要的规范和理解基于Oracle 11g版本的SQL用法,可以提高整个应用的效率,此外,也降低维护阶段的成本。 | l 了解表/索引结构; l 排序操作与优化; l 常见SQL规范与建议; l 避免数据类型转换; l 索引的使用概要; l 其他优化建议; l 操作样例。 |
3.Oracle环境表的连接方法与性能 | 由于关系数据库的表之间存在依赖关系,所以在应用处理过程中需要访问多个表才能获取完整的数据,这就是关联查询。而关联查询的SELECT 语句书写是否符合Oracle系统的要求直接与性能有关,这里介绍基于Oracle 11g版本的多表连接方法。 | l 应用优化有关的术语; l SQL 语句的处理流程; l 关于SQL语句的执行计划; l 表的访问方式; l Oracle系统SQL优化器; l Oracle系统表的连接方法; l 使用提示影响表连接 。 |
4.Oracle 11g/12c CBO与提示方法 | 从Oracle 10g版本开始,Oracle 系统优化器采用CBO优化模式,采用CBO模式后,开发人员可对SQL语句采用提示方法来要求优化器的行为,这就是提示方法。本课程介绍基于Oracle 11g/12c版本的常见的提示方法和样例。 | l CBO模式的提示概要; l CBO 模式常用提示 ; l 统计数据提示; l 访问路径提示; l 表的连接提示。 l OPTIMIZER_INDEX_COST_ADJ 等参数调整方法 |
5.Oracle环境应用DML语句优化 | 对于大型数据处理来说(特点是批量数据的处理和大数据的处理),DML操作也是制约性能的因素之一。我们这里介绍针对批量数据处理的优化方法和技巧,相信能对大型批量数据处理的应用有帮助。 | l Oracle 实例工作原理回顾; l DML/事务/Undo/Redo; l INSERT 优化方法; l UPDATE/DELETE 优化; l 关于直接I/O方法; l 并行的使用方法 ; l 长时间未提交的DML操作监控方法 。 |
6.Oracle应用瓶颈问题与诊断方法 | 在应用系统性能问题的分析中,我们常遇到的困难是:应用系统的多条SQL语句哪个语句是影响性能的根源,当找到具体的SQL语句或对象后,我们才能有针对性地进行调整。这里介绍如何从性能视图中找到性能的具体语句和优化方法。 | l 会话相关的数据字典与视图 ; l 如何确定问题的大方向 ; l 逐步逼近获取详细SQL语句及相关对象; l 分析与解决问题及测试 ; l 几个瓶颈案例分析 。 |
7.Oracle11g编程优化的其他方法 | 当开发人员或维护工程师在进行应用的优化时,经常不知道如何下手,其实,我们的本着一种简单的理念是:“把应该做好的事情做好”。因为,你花许多时间去研究某个语句的性能问题,还不如先将那些我们忽视了很久的事情做好,再去攻破那些顽固的问题。这也是一种解决问题的简单方法。 | l 临时表的使用方法; l Nologging 使用问题; l 关于热块问题; l CBO模式相关问题; l 多块读方法; l 索引与相关参数; l 新版SQL语句与性能; l 分区表与修剪关键。 |
8.Oracle 11g/12c 统计数据与性能 | 我们虽然知道CBO模式下,搜集表/索引的统计数据很重要,但是,有时我们刚完成了表和索引的统计数据的搜集,查询语句仍然效率低下,这时,我们需要进一步搜集表/索引更详细的数据,比如,搜集列的直方图数据等,此外,还要分析表/索引的详细统计数据等,从而找出问题的根源,从而进行有针对性的解决。 | l CBO 与统计数据 ; l Oracle 系统统计数据的搜集; l 列的统计数据/直方图与应用性能 ; l 索引的集群因子与应用性能分析 ; l 如何处理重组表与消除不良的索引集群因子。 |
9.Oracle 11g应用优化与参数 | Oracle系统参数合理调整可以提高应用性能,部分参数可由DBA统一来修改,部分参数(称会话级参数)可以根据应用的需求情况在应用中修改和设置,这里介绍如何在应用中根据具体情况设置和修改相关的会话级参数,从提高应效率。而由DBA修改的参数在下一个小节介绍。 | l Oracle 11g 实例参数; l 会话级参数使用方法; l 应用性能有关的参数; l CBO 模式与会话参数的修改; l DBMS_SYSTEM 包 ; l DBMS_SESSION 包 。 |
10.Oracle 11g数据库调整 | 即使在应用系统正式运行前我们对Oracle系统进行了认真的设置,但是当应用系统运行一段时间后,还需要根据Oracle系统具体运行情况进行适当的调整与优化。这里介绍如何分析Oracle系统的运行情况和调整相应的参数的方法。 | l 常见归档参数 ; l 归档参数的调整方法; l 常见未归档参数; l 未归档参数的调方法; l 参数调整后的监控。 |
11.Oracle Hang现象诊断 | Oracle 系统有时突然出现系统没有反应的情况,我们称为Hang住,当Oracle 系统出现Hang住时,如何及时确定问题的起因呢?这里,我们介绍诊断的方法。 | l Oracle 常见问题; l 高 CPU 使用查询; l I/O 瓶颈诊断; l 顶级会话诊断; l 内存异常问题 。 |
12.Oracle统性能问题小结与讨论 | 了解Oracle环境的应用系统性能的主要问题根源,可以帮助你从整个环境的高度来观察Oracle系统的性能问题,避免直接陷入几个局部的问题中。这里介绍常遇到的性能问题根源和分析方法。 | l Oracle 系统性能问题根源; l 设计与开发阶段质量问题; l Oracle 性能多层次问题; l Oracle 系统性能调整方法; l Oracle 系统性能诊断建议; l 附录:常见的设计、开发与调整问题。 |
Jerry Zhao
百林哲咨询(北京)有限公司专家团队成员
Jerry Zhao
百林哲咨询(北京)有限公司专家团队成员
Jerry Zhao
百林哲咨询(北京)有限公司专家团队成员
Jerry Zhao
百林哲咨询(北京)有限公司专家团队成员
Jerry Zhao
百林哲咨询(北京)有限公司专家团队成员
Jerry Zhao
百林哲咨询(北京)有限公司专家团队成员
Jerry Zhao
百林哲咨询(北京)有限公司专家团队成员