数据库性能优化深入浅析

来源:互联网 发布:java中时间格式化 编辑:程序博客网 时间:2024/05/01 01:10

课程时间:4天*6学时

培训模块内容

培训提纲

学时

数据库应用调优概述

◆   性能优化的基本思路和一些误区

◆   性能优化遵循的基本原则

◆   了解整个系统构建过程中各部分对性能的影响以及有哪些可以优化的部分,尤其对架构设计、ERP模型设计及开发中的一些性能要点进行了详细说明

◆   优化的三个阶段以及各阶段的步骤和方法

◆   确定合理的优化目标

◆   不同类型应用优化的方向和方法,根据应用需求确定优化方向

4学时

 

性能诊断数据----优化工具

◆   如何利用操作系统工具对数据库性能进行分析诊断

◆   性能优化的七种武器,通过各种案例学习如何通过Oracle提供给我们的工具发现、分析、解决性能问题:

l  最根本的性能信息工具----数据库数据字典和动态性能视图,如何利用查询到得信息进行问题诊断分析,了解v$表和x$表

l  诊断性能问题的好帮手:Statspack与AWR/ADDM,提供性能信息收集与性能差异报告,通过结合客户的性能差异报告掌握如何进行性能问题分析与诊断

l  快速定位性能问题的好东西:ASH与 ADDR,快速定位与基线对比

l  制胜之法宝:以案例的方式帮助我们掌握如何通过等待事件进行性能分析,了解系统中最常见的等待事件的含义和分析方法

l  基于自动化收集的性能指导工具包:自动内存优化指导、段指导等

l  SQL优化的常规武器:Sql trace与10046事件,掌握如何利用这两种工具快速确定造成性能问题的主要SQL和原因,进而确定优化方法

l  SQL优化工具包:高手可以通过autotrace获取SQL语句的执行计划和统计信息,分析SQL性能;普通人员也可以通过SQL Tuning advise和SQL Access advice获得SQL优化建议

◆    除了上述工具外,另外还有一些其他工具也在不同方向上为我们的性能优化提供着方便快捷的帮助,这些"小"工具在特定的时候也会成为我们解决问题的神兵利器

 

6学时

数据库优化----内存优化

◆   SGA的内存调整:

         SGA内存管理的变化----动态管理 VS 自动管理

         32位操作系统的内存管理问题

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

         数据缓存区的内部运行原理

         数据高速缓存区的性能诊断工具

         数据高速缓存区的性能诊断指标----命中率与等待

         数据高速缓存区的性能优化方法----大小、多池与cache表

◆   共享池的优化:

         库高速缓存性能诊断工具

         库高速缓存性能诊断指标----命中率与重载率

         库高速缓存性能优化方法----调整语句代码、共享池大小、绑定变量

         字典高速缓存的性能指标和判断依据

◆   Log buffer的优化:

       重做日志缓冲区的优化考虑

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

3学时

数据库优化----I/O优化

 

 

 

 

 

◆   数据库数据文件、重做日志文件、归档文件的I/O性能特点分析

◆   数据库I/O优化原则

◆   Oracle提供的存储级I/O优化方法----ASM

◆   使用多DBWR进程增加I/O能力

◆   如何分析数据文件上I/O以确定性能问题的根本原因

◆   LGWR与日志文件的性能问题

◆    加速归档的方法

1.5学时

数据库优化----竞争优化

◆   锁存器(LATCH)竞争优化

         锁存器的主要功能和工作原理

         如何判断和解除锁存器竞争

◆   锁竞争的解决

         数据库的锁机制原理

         锁的分类和各种模式

         锁竞争的诊断和优化

◆   回滚段竞争优化

         回滚段的主要作用和工作原理

       Oracle的自动撤销段管理方式

         如何判断回滚段竞争以及如何解决回滚段竞争

         对回滚段使用中Ora-01555故障的分析与处理

1.5学时

应用存储的优化

◆   了解Oracle的存储层次结构

◆   分析数据段、区、块的存储设置对数据访问的性能影响

◆   了解各种段类型与性能的关系,选择合适的段存储数据

◆   对比分析DMT与LMT的性能优缺点

◆   掌握HWM的含义和对性能的影响

◆   找出存储结构不合理的表和索引,将这些对象重组,从而得到更好的访问性能

◆   选择合适的块大小,并考虑多种多块大小对性能的影响

◆   设置合理的块空间参数,以减少I/O数量并且合理的存储数据

◆   注意行链与行迁移对性能的影响,解决行迁移

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

1、怎么选择表

从作用上分析如何选择永久表和临时表

从数据访问需求上,根据分区表、索引组织表、聚簇表或者普通表对性能的影响,选择合理的数据存储方法,尤其是分区技术的使用和注意事项

从数据特征上考虑字段类型选择

从竞争和I/O需求上考虑表的存储参数和属性设置

2、怎么管理表

       松散表的判断方法,解决松散表的move与shrink的执行效率和性能影响

3学时

SQL优化概述之----解析优化与排序优化

◆   SQL语句的处理过程:

         了解SQL语句运行的过程及涉及到的相关数据库组件

         掌握优化SQL语句的基本步骤和相关概念

◆   SQL语句解析的优化:

         了解SQL语句硬解析的过程和对性能的影响

         分析如何减少硬解析

         分析使用绑定变量对性能带来的影响,并通过案例证明绑定变量对性能的好处和坏处,确定何时应该使用绑定变量

◆   排序操作的优化:

         SQL语句排序的运行机制和性能分析

         确定与排序相关的操作,并减少这些排序操作

         确定优化排序的方法和对性能的影响

2学时

SQL优化深入之----算法优化

◆   CBO和RBO介绍:

         优化模式对SQL语句执行计划的影响

         通过参数或者hint选择适合的优化模式以便得到正确的执行计划

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

         了解Sql语句的优化思路

         通过工具确定高负载的SQL,收集SQL语句的统计信息和执行计划

         如何分析执行计划,查看执行计划的关键点

         通过各种案例演示工具对SQL优化分析的帮助,下面是主要工具:

                   使用Explain plan分析执行计划

                   通过autotrace分析故障语句的执行计划和统计信息

                   通过Sql trace查找有性能问题的SQL语句

                   通过10g的Sql tunning advise自动分析语句性能

                   通过10g的Sql access advise自动分析语句算法

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

         介绍执行计划中的数据访问方法以及各自的优缺点

         分析索引加速查询的原理,确定索引与全表扫描到底如何选择

         确定哪些因素影响索引访问的性能

         索引适合建立在哪些字段上

         B*tree索引与位图索引的选择

         函数索引与反转函数对性能的帮助

         确定FTS算法使用的场景,以及如何优化FTS

         DML操作对索引的影响,以及如何设置索引的存储参数和属性

         索引无效的原因以及如何书写语句以便选择正确的执行计划

         如何通过索引加快COUNT

         索引有序度与松散索引对索引性能的影响

         对比hash join、nest loop、sort merge这三种夺表连接算法的优劣

         物化视图对性能的影响,以及适用的场景

◆   收集统计信息

         通过analyze或者dbms_stats方法收集统计信息

         理解各种统计信息对性能有何种影响

         直方图与索引选择的关系

         CBO下索引选择性对执行计划的影响

◆   Sql语句优化经验

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

◆   强制执行计划

         通过对语句的修改影响RBO下的执行计划

         通过修改参数值影响CBO生成的执行计划

         通过hints直接强制执行计划

9学时


原创粉丝点击