当前位置: 首页 > test > 学院课程 > 正文

课程3:Oracle性能优化深入分析

2013-05-28 17:51:57

课程介绍:新炬学院根据学员建议和市场需求,规划和设计了《Oracle性能优化深入分析》培训课程,本课程以内部原理、实践实战为主,理论与实际相结合,将Oracle的性能优化思路和方法从上至下,从整体到细节的全面展现出来,使学员全面的理解和接受Oracle的性能优化方法,也未将来从各个层面分析、实施优化,深入研究优化打下了重要的基础。

课程时间:5天*6学时

 

培训时间

培训提纲

学时

数据库应用调优概述

 数据库优化的基本思路和一些误区
 数据库优化遵循的基本原则
 了解整个系统构建过程中各部分对性能的影响以及有哪些可以优化的部分,尤其对架构设计、ERP模型设计及开发中的一些性能要点进行了详细说明
 优化的三个阶段以及各阶段的步骤和方法
 确定合理的优化目标
 不同类型应用优化的方向和方法,根据应用需求确定优化方向

3学时

内存优化

 SGA的内存调整:

  • SGA内存管理的变化——动态管理 VS 自动管理
  • 32位操作系统的内存管理问题

◆ 数据高速缓存区的优化:

  • 数据缓存区的内部运行原理
  • 数据高速缓存区的性能诊断工具
  • 数据高速缓存区的性能诊断指标——命中率与等待
  • 数据高速缓存区的性能优化方法——大小、多池与cache

◆ 共享池的优化

  • 库高速缓存性能诊断工具
  • 库高速缓存性能诊断指标——命中率与重载率
  • 库高速缓存性能优化方法——调整语句代码、共享池大小、绑定变量
  • 字典高速缓存的性能指标和判断依据

◆ Log buffer的优化

  • 重做日志缓冲区的优化考虑
  • 重做日志缓冲区的优化指标和方法

3学时

应用存储的优化

 了解Oracle的存储层次结构
 分析数据段、区、块的存储设置对数据访问的性能影响
 了解各种段类型与性能的关系,选择合适的段存储数据
 对比分析DMTLMT的性能优缺点
 掌握HWM的含义和对性能的影响
 找出存储结构不合理的表和索引,将这些对象重组,从而得到更好的访问性能
 选择合适的块大小,并考虑多种多块大小对性能的影响
 设置合理的块空间参数,以减少I/O数量并且合理的存储数据
 注意行链与行迁移对性能的影响,解决行迁移
 从性能的角度分析如何用好你的表:

  • 怎么选择表:从作用上分析如何选择永久表和临时表;从数据访问需求上,根据分区表、索引组织表、聚簇表或者普通表对性能的影响,选择合理的数据存储方法;从数据特征上考虑字段类型选择;从竞争和I/O需求上考虑表的存储参数和属性设置
  • 怎么管理表:松散表的判断方法,解决松散表的moveshrink的执行效率和性能影响

3学时

I/O优化与竞争优化

 数据库I/O优化

  • 数据库数据文件、重做日志文件、归档文件的I/O性能特点分析
  • 数据库I/O优化原则
  • Oracle提供的存储级I/O优化方法——ASM
  • 使用多DBWR进程增加I/O能力
  • 如何分析数据文件上I/O以确定性能问题的根本原因
  • LGWR与日志文件的性能问题
  • 加速归档的方法

◆ 竞争优化

  • 锁存器(LATCH)竞争优化
  • 锁存器的主要功能和工作原理
  • 如何判断和解除锁存器竞争
  • 锁竞争的解决
  • 数据库的锁机制原理
  • 锁的分类和各种模式
  • 锁竞争的诊断和优化
  • 回滚段竞争优化
  • 回滚段的主要作用和工作原理
  • Oracle的自动撤销段管理方式
  • 如何判断回滚段竞争以及如何解决回滚段竞争
  • 对回滚段使用中Ora-01555故障的分析与处理

3学时

性能诊断数据优化工具

 如何利用操作系统工具对数据库性能进行分析诊断
 性能优化的七种武器,通过各种案例学习如何通过Oracle提供给我们的工具发现、分析、解决性能问题:

  • 最根本的性能信息工具——数据库数据字典和动态性能视图,如何利用查询到得信息进行问题诊断分析,了解v$表和x$
  • 诊断性能问题的好帮手:StatspackAWR/ADDM,提供性能信息收集与性能差异报告,通过结合客户的性能差异报告掌握如何进行性能问题分析与诊断
  • 快速定位性能问题的好东西:ASH ADDR,快速定位与基线对比
  • 制胜之法宝:以案例的方式帮助我们掌握如何通过等待事件进行性能分析,了解系统中最常见的等待事件的含义和分析方法
  • 基于自动化收集的性能指导工具包:自动内存优化指导、段指导等
  • SQL优化的常规武器:SQL Trace10046事件,掌握如何利用这两种工具快速确定造成性能问题的主要SQL和原因,进而确定优化方法
  • SQL优化工具包:高手可以通过autotrace获取SQL语句的执行计划和统计信息,分析SQL性能;普通人员也可以通过SQL Tuning AdviseSQL Access Advice获得SQL优化建议

◆  除了上述工具外,另外还有一些其他工具也在不同方向上为我们的性能优化提供着方便快捷的帮助,对于这些工具,也要了解它。

6学时

SQL优化深入之算法优化

 CBORBO介绍:

  • 优化模式对SQL语句执行计划的影响
  • 通过参数或者hint选择适合的优化模式以便得到正确的执行计划

◆ 优化SQL语句的相关工具(大量案例演示):

  • 了解SQL语句的优化思路
  • 通过工具确定高负载的SQL,收集SQL语句的统计信息和执行计划
  • 如何分析执行计划,查看执行计划的关键点
  • 通过各种案例演示工具对SQL优化分析的帮助,下面是主要工具:
  • 使用Explain Plan分析执行计划
  • 通过Autotrace分析故障语句的执行计划和统计信息
  • 通过SQL Trace查找有性能问题的SQL语句
  • 通过10gSQL Tunning Advise自动分析语句性能
  • 通过10gSQL Access Advise自动分析语句算法

◆ 数据访问方法(大量案例演示):

  • 介绍执行计划中的数据访问方法以及各自的优缺点
  • 分析索引加速查询的原理,确定索引与全表扫描到底如何选择
  • 确定哪些因素影响索引访问的性能
  • 索引适合建立在哪些字段上
  • B*tree索引与位图索引的选择
  • 函数索引与反转函数对性能的帮助
  • 确定FTS算法使用的场景,以及如何优化FTS
  • DML操作对索引的影响,以及如何设置索引的存储参数和属性
  • 索引无效的原因以及如何书写语句以便选择正确的执行计划
  • 如何通过索引加快COUNT
  • 索引有序度与松散索引对索引性能的影响
  • 对比Hash JoinNest LoopSort Merge这三种夺表连接算法的优劣
  • 物化视图对性能的影响,以及适用的场景

◆ 收集统计信息

  • 通过Analyze或者DBMS_STATS方法收集统计信息
  • 理解各种统计信息对性能有何种影响
  • 直方图与索引选择的关系
  • CBO下索引选择性对执行计划的影响

◆ SQL语句优化经验

  • 结合实际经验总结高效的SQL书写方法和优化经验

◆ 强制执行计划

  • 通过对语句的修改影响RBO下的执行计划
  • 通过修改参数值影响CBO生成的执行计划
  • 通过Hints直接强制执行计划

6学时

 

SQL的书写与使用

 简单SQL的性能误区
 讲述一些SQL使用技巧,描述开发人员容易出错或者低效的一些SQL语句写法,通过案例分析是开发人员提高SQL的书写能力。
 简单SQL的性能误区
 一些SQL使用技巧,错误或者低效的一些SQL语句写法,通过Oracle内部性能优化工具展示不为我们所关注的那些性能隐患
 使用集合操作
 使用UNIONUNION ALLINTERSECTMINUS操作符执行查询结果集合的合并操作
 GROUP BY 子句的增强
 使用ROLLUPCUBEGROUPINGSET等操作符增强GROUP BY子句,提供更强的分组计算能力
 高级子查询
 在子查询的基础上学习多列成对子查询、多列非成对子查询、相关子查询、带有WITH子句子查询的使用等
 分析函数的使用
 掌握常规分析函数的使用和机制

6学时

SQL的处理过程以及对数据库的影响

 数据操作的性能影响
 了解影响DML操作的性能因素,分析锁竞争、日志等待以及回滚段竞争对DML性能下降的影响,以及其他可能带来DML慢的原因。在讲解过程中也将阐述RedoUndo的原理以及Undo提供的一致性读、FlashBack功能。
 了解OracleSQL处理的过程
 分析Oracle数据库中SQL语句的处理过程,了解SQL解析、执行、取操作的每个环节对性能的影响,掌握SQL硬解析对性能的影响和优化硬解析的方法,掌握SQL排序的机制和优化排序的方法

3学时

数据库应用调优概述

 海量数据库优化的思路和一些误区
 优化的三个阶段以及各阶段的步骤和方法
 了解整个系统构建过程中各部分对性能的影响以及有哪些可以优化的部分,尤其对海量数据库的架构设计、E-R模型设计及开发中的一些性能要点进行了详细说明
 大数据量数据库不同类型应用优化的方向和方法,根据应用需求确定优化方向,对大数据访问及高并发访问的应用优化方向进行分析
 分库、分表、分区多种不同的数据处理方式分析
 优化的基本步骤、方法以及注意事项

3学时

优化工具介绍

 性能优化的七种武器,通过各种案例学习如何通过Oracle提供给我们的工具发现、分析、解决性能问题:
 利用系统信息收集工具对数据库进行性能诊断
 如何利用最根本的性能信息工具——数据库数据字典和动态性能视图进行信息收集和诊断
 诊断性能问题的帮手:StatspackAWR/ADDM,提供性能信息收集与性能差异报告,通过结合客户的性能差异报告掌握如何进行性能问题分析与诊断
 快速定位性能问题的好工具:ASH / ADDR,快速定位与基线对比
 制胜之法宝:以案例的方式帮助我们掌握如何通过等待事件进行性能分析,了解系统中最常见的等待事件的含义和分析方法
  基于10g自动化收集的性能指导工具介绍——自动内存优化指导、自动SQL优化指导、自动回滚段指导、段指导等

3学时

存储优化

 1、应用存储参数的优化

  • 了解Oracle的存储层次结构
  • 分析数据库段、区、块的存储设置对于数据库的数据访问的性能影响
  • 掌握HWM的含义和对性能的影响
  • 找出存储不合理的表和索引,将这些对象重组,从而得到更好的访问性能
  • 设置合理的块空间参数,以减少I/O数量并且合理的存储数据
  • 注意行链与行迁移对性能的影响,解决行迁移

◆ 2、从性能的角度分析如何用好你的表:

  • 怎么选择表
  • 从作用上分析如何选择永久表和临时表
  • 从数据访问需求上,根据分区表、索引组织表、聚簇表或者普通表对性能的影响,选择合理的数据存储方法
  • 分区表的分区类型选择与分区索引选择
  • 从数据特征上考虑字段类型选择
  • 从竞争和I/O需求上考虑表的存储参数和属性设置
  • 怎么管理表
  • 松散表的判断方法,解决松散表的moveshrink的执行效率和影响

3学时

应用SQL优化

 SQL语句的处理过程

  • 了解SQL语句的优化思路和优化重点

◆ CBORBO介绍

  • 了解决定SQL语句执行计划生成方法的优化模式,并选择适合的优化模式以便得到正确的执行计划,对比CBORBO各自适合的场景

◆ 优化SQL语句的相关工具(重点介绍11G相关工具) :了解数据库SQL语句的优化方法,通过相关工具定位具有高影响力的SQL,收集SQL语句的统计信息和执行计划,分析执行计划的正确性,对比统计信息,选择最佳执行计划。涉及到的SQL优化工具包括:

  • 提供SQL优化集的StatspackAWR
  • 使用Explain plan分析执行计划
  • 通过Autotrace分析故障语句的执行计划和统计信息
  • 通过SQL Trace查找有性能问题的SQL语句
  • 通过10gSQL Tunning Advise自动分析语句性能
  • 通过10gSQL Access Advise自动分析语句算法

◆ 数据访问方法(大量案例演示):

  • 介绍执行计划中的数据访问方法以及各自的优缺点
  • 分析索引加速查询的原理,确定索引与全表扫描到底如何选择
  • 确定哪些因素影响索引访问的性能
  • 索引适合建立在哪些字段上
  • B*tree索引与位图索引的选择
  • DML操作对索引的影响,以及如何设置索引的存储参数和属性
  • 索引无效的原因以及如何书写语句以便选择正确的执行计划
  • 如何通过索引加快COUNT
  • 对比Hash JoinNest LoopSort Merge这三种夺表连接算法的优劣
  • 对物化视图进行分析,确定这种最快的数据访问方法的特点和使用场景,并通过案例说明这些数据访问方法对性能的影响

◆ 收集统计信息

  • 通过Analyze或者DBMS_STATS方法收集统计信息
  • 理解各种统计信息对性能有何种影响
  • 分析绑定变量与统计信息的关系,确定使用绑定变量优化解析最适合的场景

◆ 应用或者强制执行计划

  • 通过对语句的修改影响RBO下的执行计划,通过修改参数值影响CBO生成的执行计划,通过hints直接强制执行计划

◆ SQL语句优化经验

  • 将实际经验中总结出的SQL使用方法和经验进行讲解,让大家了解什么样的SQL语句是比较好的语句,以及如何判断语句性能的问题
  • 数据库常用参数作用介绍及常见场景参考值推荐

12学时

 

上一篇:课程2:DBA实战进阶课程
下一篇:课程4:Oracle RAC配置、管理与优化课程


新浪微博:新炬学院 新浪博客:新炬Oracle培训