![](../img/lab-not-ok.png)
Oracle10g应用优化培训
引子 简单SQL的性能误区
讲述一些SQL使用技巧,描述开发人员容易出错或者低效的一些SQL语句写法,通过案例分析提高是开发人员SQL的书写能力。下面的SQL部分重点讲解一些有多年开发经验的开发人员也会忽略的SQL技巧和性能要点。
1、简单SQL的性能误区
一些SQL使用技巧,错误或者低效的一些SQL语句写法,通过0racle内部性能优化工具展示不为我们所关注的那些性能隐患
2、集合操作、GR0UP BY 子句的增强以及一些影响性能的子查询
3、数据操作的性能影响
了解影响DML操作的性能因素,分析锁竞争对DML性能下降的影响,以及其他可能带来DML慢的原因。
培训主题一、应用优化思路与优化工具
1、数据库应用调优概述
海量数据库优化的思路和一些误区
优化的三个阶段以及各阶段的步骤和方法
了解整个系统构建过程中各部分对性能的影响以及有哪些可以优化的部分,尤其对海量数据库的架构设计、E-R模型设计及开发中的一些性能要点进行了详细说明
大数据量数据库不同类型应用优化的方向和方法,根据应用需求确定优化方向,对大数据访问及高并发访问的应用优化方向进行分析
优化的基本步骤、方法以及注意事项
2、优化工具介绍
性能优化的七种,通过各种案例学习如何通过0racle提供给我们的工具发现、分析、解决性能问题:
诊断性能问题的帮手:Statspack与AWR/ADDM,提供性能信息收集与性能差异报告,通过结合客户的性能差异报告掌握如何进行性能问题分析与诊断
培训主题二、数据库应用优化——应用存储优化
1、从性能的角度分析如何用好你的表:
怎么选择表
从作用上分析如何选择表和临时表
从数据访问需求上,根据分区表、索引组织表、聚簇表或者普通表对性能的影响,选择合理的数据存储方法
从数据特征上考虑字段类型选择
从竞争和I/0需求上考虑表的存储参数和属性设置
怎么管理表
松散表的判断方法,解决松散表的move与shrink的执行效率和性能影响
培训主题三、数据库应用优化——应用SQL优化
1、SQL语句的处理过程
了解Sql语句的优化思路和优化重点
分析0racle数据库中SQL语句的处理过程,了解SQL解析、执行、取操作的每个环节对性能的影响,掌握SQL硬解析对性能的影响和优化硬解析的方法
2、CB0和RB0介绍
了解决定SQL语句执行计划生成方法的优化模式,并选择适合的优化模式以便得到正确的执行计划,对比CB0、RB0各自适合的场景
3、优化SQL语句的相关工具
了解数据库Sql语句的优化方法,通过相关工具定位具有高影响力的SQL,收集SQL语句的统计信息和执行计划,分析执行计划的正确性,对比统计信息,选择佳执行计划。涉及到的SQL优化工具包括:
提供SQL优化集的Statspack与awr
使用Explain plan分析执行计划
通过autotrace分析故障语句的执行计划和统计信息
通过Sql trace查找有性能问题的SQL语句
通过10g的Sql tunning advise自动分析语句性能
通过10g的Sql access advise自动分析语句算法
4、数据访问方法(大量案例演示):
介绍执行计划中的数据访问方法以及各自的优缺点
分析索引加速查询的原理,确定索引与全表扫描到底如何选择
确定哪些因素影响索引访问的性能
索引适合建立在哪些字段上
B*tree索引与位图索引的选择
DML操作对索引的影响,以及如何设置索引的存储参数和属性
索引无效的原因以及如何书写语句以便选择正确的执行计划
如何通过索引加快C0UNT
对比hash join、nest loop、sort merge这三种夺表连接算法的优劣
对物化视图进行分析,确定这种快的数据访问方法的特点和使用场景,并通过案例说明这些数据访问方法对性能的影响
5、收集统计信息
通过analyze或者dbms_stats方法收集统计信息
理解各种统计信息对性能有何种影响
分析绑定变量与统计信息的关系,确定使用绑定变量优化解析适合的场景
6、应用或者强制执行计划)
通过对语句的修改影响RB0下的执行计划,通过修改参数值影响CB0生成的执行计划,通过hints直接强制执行计划
7、Sql语句优化经验
将实际经验中总结出的Sql使用方法和经验进行讲解,让大家了解什么样的Sql语句是比较好的语句,以及如何判断语句性能的问题