*章 数据库应用调优概述
数据库优化的基本思路和基本原则,从整体上对性能优化的各个阶段进行了分析描述,确定性能优化的方法和步骤,分别描述数据库优化和应用优化对性能的影响
第二章优化工具介绍(大量案例)
与数据库优化相关的工具,主要是察看数据库运行情况和收集数据库统计信息的Oracle自带的相关工具以及一些OS工具,了解工具的用户以及对如何利用收集的信息判断性能问题,将会涉及到下列优化工具:
最根本的性能信息工具:数据库数据字典和动态性能视图
Alert Log与Trace Files对性能故障诊断的帮助
诊断性能问题的法宝:Statspack与awr
Oracle性能诊断的又一利器:等待事件
10g新增加的自动化监控、调优工具——ADDM
基于自动化收集的性能指导工具介绍
第三章数据库优化——内存优化
1、SGA的内存调整
动态的SGA与10g自动管理的SGA
2、数据高速缓存区的优化(少量案例)
数据高速缓存区的性能指标和判断依据,以及如何在各种情况下执行针对性的优化工作
3、共享池的优化(少量案例)
共享池的库高速缓存、字典高速缓存的性能指标和判断依据,以及如何进行各种情况的优化工作
4、其他SGA组件的优化(少量案例)
重做日志缓冲区的优化考虑以及各个内存区大小的经验判断方法
第四章数据库优化——I/O优化(少量案例)
数据库数据文件、重做日志文件、归档文件的I/O性能特点分析和优化原则,存储级的I/O性能考虑,检测点的原理及优化,使用多DBWR进程增加I/O能力,异步I/O的性能考虑,LGWR与ARC进程的优化,加速归档的方法
第五章数据库优化——竞争优化
1、锁存器(LATCH)竞争优化
锁存器的主要功能和工作原理,如何判断和解除锁存器竞争
2、锁竞争的解决(少量案例)
数据库的锁机制原理,锁的分类和各种模式,如何优化锁竞争
3、回滚段竞争优化
回滚段的主要作用和工作原理,Oracle的自动撤销段管理方式,如何判断回滚段竞争以及如何解决回滚段竞争,对回滚段使用中Ora-01555故障的分析与处理
第六章应用优化——应用存储优化
1、应用存储参数的优化(大量案例)
了解存储结构基本概念,对比DMT与LMT的性能特点,分析数据库段、区、块的存储设置对于数据库的数据访问的性能影响,从而选择合适的块大小,考虑多种多块大小对性能的影响。设置合理的块空间参数,以减少I/O数量并且合理的存储数据,注意行链与行迁移对性能的影响,解决行迁移,同时选择ASSM存储方式以减少段头竞争。掌握HWM的含义和对性能的影响,找出存储结构不合理的表和索引,采取适当的方法将这些对象进行重组,使存储结构更加合理,从而得到更好的访问性能
2、选择合适的数据存储方法(少量案例)
了解数据库应用的特点,知道各种数据存储的方式对性能的影响,合理的选择分区表、索引组织表、聚簇表或者普通表存储数据。对用于存储海量数据的分区表的概念和维护进行详细描述,确定如何使用分区表加快查询性能
第七章应用优化——应用语句优化
1、SQL语句的处理过程(少量案例)
了解SQL语句运行的过程和相关的数据库组件,掌握优化SQL语句的基本步骤和相关概念
2、SQL语句解析的优化(少量案例)
讲解SQL语句硬解析的过程和对性能的影响,通过案例分析如何减少硬解析
3、排序操作的优化(少量案例)
SQL语句执行时排序的原理和性能分析,确定与排序相关的操作,通过案例分析如何优化排序
4、优化SQL语句的相关工具(大量案例)
了解数据库Sql语句的优化方法,通过相关工具定位具有高影响力的SQL,收集SQL语句的统计信息和执行计划,分析执行计划的正确性,对比统计信息,选择*执行计划。涉及到的SQL优化工具包括:
提供SQL优化集的Statspack与awr
使用Explain plan分析执行计划
通过autotrace分析故障语句的执行计划和统计信息
通过Sql trace查找有性能问题的SQL语句
通过10g的Sql tunning advise自动分析语句性能
通过10g的Sql access advise自动分析语句算法
5、CBO和RBO介绍(少量案例)
了解决定SQL语句执行计划生成方法的优化模式,并选择适合的优化模式以便得到正确的执行计划,对比CBO、RBO各自适合的场景
6、数据访问方法概述(大量案例)
索引访问:介绍执行计划中常见或者特殊的一些数据访问方法以及各自的优缺点,尤其是主要数据访问方法——索引访问与全表扫描的对比,分析索引原理,理解在什么条件下索引能够加速查询,确定FTS算法使用的场景,以及如何优化FTS。
多表连接:对比hash join、nest loop、sort merge这三种夺表连接算法的优劣,确定各自适合的场景。
物化视图:另外也对特殊的数据访问方法——物化视图进行分析,确定这种最快的数据访问方法的特点和使用场景,并通过案例说明这些数据访问方法对性能的影响。
7、收集统计信息(少量案例)
通过各种方法收集统计信息,为CBO计算准确的代价提供基础数据,描述各种统计信息对性能有何种影响
8、应用或者强制执行计划(少量案例)
通过对语句的修改影响RBO下的执行计划,通过修改参数值影响CBO生成的执行计划,通过hints直接强制执行计划
9、Sql语句优化经验(大量案例)
将实际经验中总结出的Sql使用方法和经验进行讲解,让大家了解什么样的Sql语句是比较好的语句,以及如何判断语句性能的问题
10、稳定调整好的语句执行计划
通过存储概要确保执行计划的稳定性,即使外界环境发生改变,调整好的执行计划也不改变