简介
Oracle 11g/12c 系统性能问题可能是数据量太大导致的,也可能是我们编程时使用SQL语句不当导致的,那么,如何才能避免使用不当呢?下面样例可帮助你理解Oracle 系统SQL的使用方法。
目标
1、Oracle 环境应用程序优化方法
2、Oracle 环境应用系统测试方法
3、Oracle 环境应用系统性能问题诊断与调整方法
课程时长
5天(30H)
受众人群
基于Oracle环境的软件开发人员;基于Oracle 系统的软件测试人员;Oracle 数据库管理人员;Oracle 数据库最终用户相关人员;Oracle 系统应用维护人员
分享提纲
1、Oracle优化与诊断基本知识 | 了解基于Oracle环境的性能诊断方法非常关键,开发人员和优化工程师可使用你最喜欢而且又是得力的工具,可帮助你快速定位性能问题的根源。 | 1.1SQL*Plus 环境 1.2DBA_xxx数据字典 1.3V$_xxx / X$_xxx 性能视图介绍 1.4附加的数据字典概要 1.5Oracle 系统诊断工具 1.6第三方诊断工具 |
2、Oracle环境 SQL语句规范与性能 | 由于编写程序时,SQL语句的书写没有固定的方法和标准,导致应用系统的SQL语句运行效率低下,那么,如何在开发阶段,就对所编写的SQL语句进行规范,是提高应用程序SQL语句运行效率的关键,这里,我们给出了常见的SQL语句规范书写方法详细介绍。 | 2.1排序优化 2.2简化SQL 2.3避免SQL语句转换 2.4几个内置函数 2.5避免数据类型转换 2.6其他优化建议 |
3、Oracle 系统SQL语句处理流程 | 当应用系统运行效率低下时,我们就对SQL语句进行诊断,SQL语句的处理流程、SQL语句执行计划是帮助我们分析SQL语句性能问题的关键,这里,我们介绍SQL语句处理流程和执行计划分析方法。 | 3.1 SQL语句优化有关术语 3.2SQL语句处理与相关视图 3.3一个银行业务处理流程 3.4关于SQL语句的执行计划 3.5理解SQL执行过程 3.6操作样例 |
4、Oracle环境表的连接方法与性能 | 4.1表的访问方式 4.2Oracle系统SQL优化器 4.3Oracle系统表的连接方法 4.4使用提示影响表连接 | |
5、Oracle 11g/12c CBO与提示方法 | 从Oracle 10g版本开始,Oracle 系统优化器采用CBO优化模式,采用CBO模式后,开发人员可对SQL语句采用提示方法来要求优化器的行为,这就是提示方法。本课程介绍基于Oracle 11g/12c版本的常见的提示方法和样例 | 5.1CBO模式的提示概要 5.2CBO 模式常用提示 5.3统计数据提示 5.4访问路径提示 5.5表的连接提示 5.6OPTIMIZER_INDEX_COST_ADJ 等参数调整方法 |
6、Oracle 11g/12c 查询多表的连接方法 | 当查询语句需要对两个以上表进行查询时,就涉及到表的相关列间连接方法,连接方法是否合理直接导致该SQL语句的效率,这里,我们介绍基于Oracle 12c版本支持的新的连接方法。 | 6.1SQL 语句与连接入门 6.2样例用户与连接方法 6.3OUTER JOIN方法 6.4Semi/Anti-Joins与性能 6.511g/12c Joins 新变化 |
7、Oracle 11g/12c 统计数据与性能 | 我们虽然知道CBO模式下,搜集表/索引的统计数据很重要,但是,有时我们刚完成了表和索引的统计数据的搜集,查询语句仍然效率低下,这时,我们需要进一步搜集表/索引更详细的数据,比如,搜集列的直方图数据等,此外,还要分析表/索引的详细统计数据等,从而找出问题的根源,从而进行有针对性的解决。 | 7.1CBO 与统计数据 7.2列的统计数据/直方图与应用性能 7.3索引的集群因子与应用性能分析 7.4如何获取良好的索引集群因子 7.5Oracle 系统统计数据的搜集 |
8、Oracle系统避免锁与锁诊断方法 | 只要是RDBMS,在处理DML语句时都采用锁机制进行并发控制,Oracle系统中的锁就是避免同一数据被多个会话修改可能产生混乱而设置的机制,在这里,我们介绍Oracle 系统锁概念,以及如何避免不必要的长期锁等,从而降低应用间的等待时间。 | 8.1关于Oracle系统的锁概念与术语 8.2不良SQL导致锁问题诊断方法 8.3复杂问题导致锁的自动数据搜集方法 8.4锁冲突的诊断脚本与解决方法 |
9、Oracle环境应用DML语句优化 | 当我们研究Oracle 系统的性能问题时,会从网络上搜索相关的性能文章,你会看到如何分析SELECT语句执行计划等,却很少看到如何做才能使DML语句的性能提高。这里,我们通过样例方法介绍如何优化DML语句。 | 9.1Oracle 实例工作原理回顾 9.2DML/事务/Undo/Redo 9.3INSERT 优化方法 9.4UPDATE/DELETE 优化 9.5并行的使用方法 |
10、Oracle 12c编程优化的其他方法 | 当开发人员或维护工程师在进行应用的优化时,经常不知道如何下手,其实,我们的本着一种简单的理念是:“把应该做好的事情做好”。因为,你花许多时间去研究某个语句的性能问题,还不如先将那些我们忽视了很久的事情做好,再去攻破那些顽固的问题。这也是一种解决问题的简单方法。 | 10.1应用性能有关的参数 10.2CBO 模式的参数 10.3会话级参数的修改方法 10.4分区表与修剪关键 10.5何时使用Nologging 问题 |
11、Oracle 11g/12c SQL优化新方法 | Oracle系统的每个版本在性能优化技术方面都经常推陈出新,比如Oracle 9i~10g采用固定执行计划方法来优化SQL语句,Oracle 11g版本采用SQL Baselines 方法;而Oracle 12c版本采用新的自适应SQL计划管理 方法。这里,我们详细介绍这几种SQL语句优化方法,使得你能根据你的环境情况进行适当的调整。 | 11.1Oracle 9i~12c 版本SQL优化方法回顾 11.2Oracle 11g/12c DBMS_SPM 优化方法 11.3Oracle 12c DBMS_SPD 优化方法 11.4Oracle 12g SQL优化新的变化 |
12、Oracle 11g/12c SQL 问题诊断 | 12.1 Oracle 9i /10g Outlines(计划稳定性方法)回顾 12.2 11g SQL Tuning Advisor方法 12.3 12c SQL Baselines 方法 | |
13、AWR与ADDM及ASH | 13.1EM变化 13.2AWR架构 13.3产生ASH报告 13.411g/12c 基准线增强 13.5ADDM 功能 13.6AWR许可与统计数据 13.7ADDM 参数 | |
14、Oracle系统常用诊断工具 | Oracle 系统性能诊断与调整是一件具有挑战性的工作,首先,你必须先确定产生性能问题的根源,然后进行针对性的修正。那么,如何诊断Oracle系统的运行阶段出现的性能与故障问题,是每个处理Oracle系统性能问题都关系的问题 | 14.1常见工具一览表 14.2Unix 监控命令 14.3OS Watcher 工具 14.4The On-Board Monitor 工具 14.5Oracle 11g 内部的视图 |
15、Oracle 11g/12c诊断工具使用方法 | 15.1 Statspack 介绍 15.2 使用操作 15.3 报告研究 15.4 Statspack样例 15.5 11g/12c 管理包产品 15.6 11g/12c 诊断-包Diagnostic Pack包 15.7 11g/12c 调整包-Tuning Pack包 | |
16、应用瓶颈问题与诊断方法 | 16.1会话相关的数据字典与视图 16.2如何确定问题的大方向 16.3逐步逼近获取详细SQL语句及相关对象 16.4分析与解决问题及测试 16.5几个瓶颈案例分析 | |
17、Oracle Hang 现象诊断 | Oracle 系统有时突然出现系统没有反应的情况,我们称为Hang住,当Oracle 系统出现Hang住时,如何及时确定问题的起因呢?这里,我们介绍诊断的方法。 | 17.1Oracle 常见问题 17.2高 CPU 使用查询 17.3I/O 瓶颈诊断 17.4顶级会话诊断 17.5内存异常问题 |
18、Oracle 系统等待事件与性能诊断 | 18.1生活中的等待 18.2Oracle 等待事件概念 18.3Oracle 事件构成与接口 18.4Oracle 常见等待事件与性能问题 18.5Oracle 11g/12c RAC 常见等待事件 | |
19、Oracle 11g/12c Latch 调整方法 | Oracle 系统有多种锁,比如DML操作时的表级、行级锁等,此外,Oracle 系统的SGA区的管理也采用一种称为Latch的锁。Latch锁有时也可能导致性能的下降,比如,长时间的Latch等待等,我们介绍Oracle系统Latch锁诊断与调整方法。 | 19.1RDBMS并发概念 19.2Oracle LOCKS & Latches 19.3Oracle Latch 视图 19.4Oracle Latch 等待事件 19.5降低 Oracle Latch 竞争 |
20、Oracle系统 Hot Table & Hot Block | 其实,Oracle 系统的性能问题不一定就是编程质量导致,可能由于应用系统的表及其相关块出现高频率的竞争导致,这里,我们介绍关于热块、热表等概念,此外,通过样例方法介绍如何诊断热块和降低热块发生。 | 20.1关于热块概念 20.2表/索引与热块 20.3热块与等待事件 20.4段的调整 20.5段的I/O统计问题 20.6Data files与Hot spots 20.7常用脚本样例 |
Jerry Zhao
百林哲咨询(北京)有限公司专家团队成员
Jerry Zhao
百林哲咨询(北京)有限公司专家团队成员
Jerry Zhao
百林哲咨询(北京)有限公司专家团队成员
Jerry Zhao
百林哲咨询(北京)有限公司专家团队成员
Jerry Zhao
百林哲咨询(北京)有限公司专家团队成员
Jerry Zhao
百林哲咨询(北京)有限公司专家团队成员
Jerry Zhao
百林哲咨询(北京)有限公司专家团队成员