Oracle数据库性能优化最佳实践

Oracle数据库性能优化最佳实践
    马上咨询

    罗敏  20余年IT从业经验

    在Oracle中国公司十多年时间里,在银行、电信、政府等行业和部门参与了多个大型IT系统的建设和运行维护工作,提供了体系结构设计、数据库设计、应用开发设计指导、性能优化、数据备份恢复、容灾系统建设、数据仓库系统建设、数据库安全性等领域的咨询和技术支持服务,并为国内主要软件开发商和集成商提供多场Oracle高级技术应用培训

    课程信息

    在现代的企业中,信息化建设已经被越来越重视,而在各种类型的信息系统中,数据库管理成为信息系统至关重要的一项要求。在众多数据库中,Oracle数据库以其高可靠性、安全性、可兼容性,得到越来越多的企业的青睐。如何使Oracle数据库保持优良性能,确保Oracle系统的高性能和持续可用性,成为数据库管理人员非常关心的问题。经验告诉我们,即使有很好的软件系统设计,但如果数据库系统的配置不尽合理,不能在“复杂”系统中高效运转,则数据库将会成为整个信息系统的瓶颈。

    培训特色

    在现代的企业中,信息化建设已经被越来越重视,而在各种类型的信息系统中,数据库管理成为信息系统至关重要的一项要求。在众多数据库中,Oracle数据库以其高可靠性、安全性、可兼容性,得到越来越多的企业的青睐。如何使Oracle数据库保持优良性能,确保Oracle系统的高性能和持续可用性,成为数据库管理人员非常关心的问题。经验告诉我们,即使有很好的软件系统设计,但如果数据库系统的配置不尽合理,不能在“复杂”系统中高效运转,则数据库将会成为整个信息系统的瓶颈。

    课程大纲

    1、数据库应用调优概述
    技术要点:
    数据库优化的基本思路和一些误区
    数据库优化遵循的基本原则
    了解整个系统构建过程中各部分对性能的影响以及有哪些可以优化的部分
    优化的基本步骤和方法
    2、优化工具介绍
    技术要点:
    利用系统信息收集工具对数据库进行性能诊断
    如何利用最根本的性能信息工具——数据库数据字典和动态性能视图进行信息收集和诊断
    AlertLog与TraceFiles对性能故障诊断有哪些帮助,如何利用10046事件对性能信息进行更细致的收集
    诊断性能问题的法宝:9i的Statspack与10g的awr/addm对比
    如何利用Oracle性能诊断的又一利器——等待事件进行性能分析
    基于10g自动化收集的性能指导工具介绍——自动内存优化指导、自动SQl优化指导、自动回滚段指导、段指导等
    3、SGA的内存调整
    技术要点:
    SGA内存管理的变化——动态的VS自动管理的
    SGA各个内存组件大小的建议

    4、数据高速缓存区的优化
    技术要点:
    数据高速缓存区的性能诊断工具
    数据高速缓存区的性能诊断指标——命中率与等待事件
    数据高速缓存区的性能优化方法——大小、多池与cache表
    5、共享池的优化
    技术要点:
    共享池的库高速缓存性能诊断工具
    共享池的库高速缓存性能诊断指标——命中率与重载率
    共享池的库高速缓存性能优化方法——调整语句代码、共享池大小、绑定变量
    字典高速缓存的性能指标和判断依据
    6、数据文件I/O的优化
    技术要点:
    数据库数据文件、重做日志文件、归档文件的I/O性能特点分析
    数据库I/O优化原则
    存储级的I/O性能优化方法——Raid
    检测点的原理及优化
    使用多DBWR进程增加I/O能力
    异步I/O的性能考虑
    LGWR与ARC进程的优化
    加速归档的方法
    7、锁存器(LATCH)竞争优化
    技术要点:
    锁存器的主要功能和工作原理
    如何判断和解除锁存器竞争
    8、锁竞争的解决
    技术要点:
    数据库的锁机制原理
    锁的分类和各种模式
    锁竞争的诊断和优化
    9、回滚段竞争优化
    技术要点:
    回滚段的主要作用和工作原理
    Oracle的自动撤销段管理方式
    如何判断回滚段竞争以及如何解决回滚段竞争
    对回滚段使用中Ora01555故障的分析与处理
    10、应用存储参数的优化
    技术要点:
    了解Oracle的存储层次结构
    对比DMT与LMT的性能特点
    分析数据库段、区、块的存储设置对于数据库的数据访问的性能影响
    掌握HWM的含义和对性能的影响
    找出存储结构不合理的表和索引,将这些对象重组,从而得到更好的访问性能
    选择合适的块大小,并考虑多种多块大小对性能的影响
    设置合理的块空间参数,以减少I/O数量并且合理的存储数据
    注意行链与行迁移对性能的影响,解决行迁移
    选择ASSM存储方式以减少段头竞争
    11、选择合适的数据存储方法
    技术要点:
    了解数据库应用的特点,并根据分区表、索引组织表、聚簇表或者普通表对性能的影响,合理选择数据存储方法
    分区表的使用和维护,选择合适的分区类型以加快查询性能

    12、SQL语句的处理过程
    技术要点:
    了解SQL语句运行的过程及相关的数据库组件
    掌握优化SQL语句的基本步骤和相关概念
    13、SQL语句解析的优化
    技术要点:
    了解SQL语句硬解析的过程和对性能的影响
    分析如何减少硬解析
    分析绑定变量对性能的影响

    14、排序操作的优化
    技术要点:
    SQL语句排序的运行机制和性能分析
    确定与排序相关的操作,并减少这些排序操作
    确定优化排序的方法和对性能的影响
    15、优化SQL语句的相关工具
    技术要点:
    通过相关工具定位具有高影响力的SQL,收集SQL语句的统计信息和执行计划
    分析执行计划的正确性,对比统计信息,选择最佳执行计划
    涉及到的SQL优化工具包括:
    提供SQL优化集的Statspack与awr
    使用Explainplan分析执行计划
    通过autotrace分析故障语句的执行计划和统计信息
    通过Sqltrace查找有性能问题的SQL语句
    通过10g的Sqltunningadvise自动分析语句性能
    通过10g的Sqlaccessadvise自动分析语句算法
    16、CBO和RBO介绍
    技术要点:
    优化模式对SQL语句执行计划的影响
    通过参数或者hint选择适合的优化模式以便得到正确的执行计划

    17、数据访问方法概述
    技术要点:
    分析索引原理
    对比索引访问与全表扫描
    确定哪些因素影响索引访问的性能
    对比hashjoin、nestloop、sortmerge这三种夺表连接算法的优劣
    物化视图对性能的影响,以及适用的场景
    18、收集统计信息
    技术要点:
    通过analyze或者dbms_stats方法收集统计信息
    理解各种统计信息对性能有何种影响
    19、强制执行计划
    技术要点:
    通过对语句的修改影响RBO下的执行计划
    通过修改参数值影响CBO生成的执行计划
    通过hints直接强制执行计划
    20、Sql语句优化经验
    技术要点:
    结合实际经验总结高效的Sql书写方法和优化经验