数据库优化基础 |
- 在 unix /windows 下关闭/启动监听器/数据库实例
- 查看及分析alert日志 及 trace文件内容方法
- Oracle数据库逻辑备份方法(exp/imp;expdp/impdp)
- 表结构/数据/视图/存储过程获取方式
- Oracle数据库flashback 闪回技术及恢复实战
|
SQL及PL/SQL使用方法技巧 |
- SQL及SQL*Plus 命令类别和使用
- 常用DML语句(insert, delete, update)DRL语句(select)书写方式及技巧
- in/not in,exists/not exists书写方法及性能比较
- with, connect by , group , order , 聚合统计函数编写方法
- SQL语句的执行过程
- SQL生成SQL技巧
- 常用SQL函数
- PL/SQL简介(bulk collect / forall / coursor)
|
优化SQL语句的相关工具(大量案例实践)
|
了解数据库Sql语句的优化方法,通过相关工具定位具有高影响力的SQL,收集SQL语句的统计信息和执行计划,分析执行计划的正确性,对比统计信息,选择最佳执行计划。涉及到的SQL优化工具包括:
- 提供SQL优化集的Statspack与awr
- 使用Explain plan分析执行计划
- 通过autotrace分析故障语句的执行计划和统计信息
- 通过Sql trace查找有性能问题的SQL语句
- 通过10g的Sql tunning advise自动分析语句性能
- 通过10g的Sql access advise自动分析语句算法
|
优化工具介绍(大量案例实践) |
- 最根本的性能信息工具:数据库数据字典和动态性能视图
- Alert Log与Trace Files对性能故障诊断的帮助
- 诊断性能问题的法宝:Statspack与awr
- Oracle性能诊断的又一利器:等待事件
- 10g新增加的自动化监控、调优工具——ADDM
|
SQL语句的处理过程(案例实践) |
- 了解SQL语句运行的过程和相关的数据库组件,掌握优化SQL语句的基本步骤和相关概念
|
SQL语句解析的优化(案例实践) |
- 讲解SQL语句硬解析的过程和对性能的影响,通过案例分析如何减少硬解析
|
排序操作的优化(案例实践) |
- SQL语句执行时排序的原理和性能分析,确定与排序相关的操作,通过案例分析如何优化排序
|
索引种类及优化案例分析 |
- 包含:index 种类/结构/使用条件,B-tree 索引/ 函数索引/复合索引/
bitmap 索引 等
|
索引访问方式 |
- Index rowid scan
- Fast Index scan
- Skip index scan
- …
|
CBO和RBO介绍(少量案例实践) |
- 了解决定SQL语句执行计划生成方法的优化模式,并选择适合的优化模式以便得到正确的执行计划,对比CBO、RBO各自适合的场景
|
数据访问方法概述(大量案例实践) |
- 索引访问:介绍执行计划中常见或者特殊的一些数据访问方法以及各自的优缺点,尤其是主要数据访问方法——索引访问与全表扫描的对比,分析索引原理,理解在什么条件下索引能够加速查询,确定FTS算法使用的场景,以及如何优化FTS。
- 多表连接:对比hash join、nest loop、sort merge这三种夺表连接算法的优劣,确定各自适合的场景。
- 物化视图:另外也对特殊的数据访问方法——物化视图进行分析,确定这种最快的数据访问方法的特点和使用场景,并通过案例说明这些数据访问方法对性能的影响。
|
收集统计信息(案例实践) |
- 通过各种方法收集统计信息,为CBO计算准确的代价提供基础数据,描述各种统计信息对性能有何种影响
|
应用或者强制执行计划(案例实践) |
- 通过对语句的修改影响RBO下的执行计划,通过修改参数值影响CBO生成的执行计划,通过hints直接强制执行计划
|
SQL语句优化经验(大量案例实践) |
- 将实际经验中总结出的Sql使用方法和经验进行讲解,让大家了解什么样的Sql语句是比较好的语句,以及如何判断语句性能的问题
|
稳定调整好的语句执行计划
|
- 通过存储概要确保执行计划的稳定性,即使外界环境发生改变,调整好的执行计划也不改变
|