课程名称一: Oracle性能优化及调整
- 课程时长 1天
- 课程深度: 高级
- 上机实验: 10%-30%
- 授课对象: Oracle开发人员、Oracle数据库管理人员,应用程序开发人员
- 课程描述:
- 本课程讲述Oracle数据库物理层规划,系统性能的监控,数据库性能参数调整,统计信息的收集,使用自动化调试工具优化数据库,I/O子系统的配置与设计以及性能优化方法论等。
- 预备知识:
- 熟悉操作系统相关(含Linux)基础知识,具备中级以上数据库相关的基础知识,对Oracle数据库体系结构有深入的理解, 熟悉SQL及PL/SQL常规用法等。
课程收获:
- 认识性能问题并合理的度量性能;
- 掌握数据库物理层面规划认识规划的重要性;
- 掌握从系统层面监控数据库性能;
- 掌握性能优化方法,定位性能关键区间;
- 掌握常用的性能调整参数及性能调整工具;
- 掌握统计信息的收集与管理。
课程大纲:
- 性能优化概述
- 性能问题有哪些表征?
- 性能优化从需求分析开始
- 性能问题如何度量?
- 如何规划数据库物理层面?
- 硬件配置调整
- 操作系统内核设置
- 网络层面的配置
- 存储层面的配置
- 系统层面如何监控性能?
- Oracle Enterprise Manager (Cloud Control)
- OSWatch
- Linux自带的sysstat工具包
- 从哪里着手开始优化?
- 分而治之的方法论
- 性能优化分析路线
- 应用程序性能剖析
- 数据库性能剖析
- 数据库级别有哪些性能诊断工具?
- 实例Alert日志,集群日志
- AWR(自动工作负载仓库)
- ADDM(自动数据库调试监控)
- ASH(活动会话历史)
- Advisory组件
- Oracle数据库参数调整
- 有哪些重要的系统参数?
- 优化db_cache_size
- 优化shared_pool_size
- 优化pga_aggregate_target
- 收集系统及对象统计信息
- 系统统计信息
- 对象统计信息
- 如何还原历史统计信息?
课程名称二:SQL,PL/SQL优化法则
- 课程名称: SQL,PL/SQL优化法则
- 课程时长 2天
- 课程深度: 高级
- 上机实验: 15%-35%
- 授课对象: Oracle开发人员、Oracle数据库管理人员、应用程序或系统开发人员
- 课程描述:
- 本课程讲述SQL,PL/SQL性能优化相关的实战技巧。包括SQL优化器模式,SQL执行计划的获取及解读,寻找低效的SQL语句,编写高效SQL语句,提示的使用,访问路径的优化,表连接优化,SQL自动优化,批量SQL优化,AWR与ADDM报告解读,PL/SQL性能优化等等。
- 预备知识: 具备数据库相关的知识,SQL相关知识,PL/SQL相关知识等等
课程收获:
- 掌握SQL语句执行过程的实质,绑定变量对于解析的影响;
- 掌握SQL优化的步骤及其指导原则;
- 掌握如何获取SQL执行计划以及解读执行计划;
- 掌握如何通过改写SQL以及使用提示来优化SQL;
- 掌握数据库访问路径,表连接相关技巧;
- 掌握阅读AWR,ADDM报告相关关键指标;
- 掌握PL/SQL以及批量SQL的优化技巧;
课程大纲:
- SQL语句如何被执行?
- SQL语句执行过程
- 硬解析与软解析
- 如何使用绑定变量
- SQL优化的步骤
- SQL优化器的模式
- 自顶向下的优化方法
- 配置查询优化器
- SQL优化指导原则
- SQL执行计划
- 获取SQL执行计划
- 解释执行计划
- 寻找Top SQL
- Top 10 SQL
- 识别低效执行的SQL语句
- Top 10 by Buffer Gets
- Top 10 by Physical Reads
- Top 10 by Executions
- 编写高效的SQL
- 仅提取所需的数据列
- 使用DECODE函数来减少处理时间
- 使用TRUNCATE 代替 DELETE
- 用WHERE子句替换HAVING子句
- 避免比较不匹配的数据类型
- 避免在索引列上使用NOT运算或不等于运算(<>,!=)
- 避免索引列上使用 NULL 值
- 使用SQL提示(hint)
- 改变执行路径的提示
- 访问方法的相关提示
- 表连接操作提示
- 优化数据访问路径
- 寻找低效的访问路径
- 全表扫描
- 全索引扫描
- ROWID扫描
- 基于函数的索引
- INDEX FULL SCAN vs INDEX FAST FULL SCAN
- 表连接优化
- 嵌套循环连接
- 哈希连接
- 合并排序连接
- 使用STA自动优化SQL
- STA优化SQL用法
- STA优化的本质
- 基于物化视图的高级优化
- 物化视图的运行机制
- 何时使用物化视图
- 查询重写与刷新
- AWR,ADDM报告解读
- AWR报告提取及解读
- ADDM报告提取及解读
- Oracle Execute to Parse 执行解析比案例分析
- 定位PL/SQL性能瓶颈
- 使用PL/SQL Developer剖析PL-SQL代码
- 使用PL/SQL Profiler 剖析生成html报告
- 优化PL/SQL
- 减少PL/SQL单元迭代
- 使用RETURNING减少SQL执行次数
- 使用批量SQL提高性能
- 认识批量SQL
- FETCH 的BULK处理
- FORALL的BULK处理
- SELECT INTO的BULK处理