本章的目的掌握如何解读AWR报告掌握在AWR报告中的一些主要小节的作用掌握AWR报告中的一些主要等待事件的含义掌握AWR报告中的一些主要统计数据的含义掌握如何在AWR报告中分析TOPSQL掌握如何使用AWR报告中的建议解读AWR报告的作用AWR报告是Oracle数据库性能和运行状态的最全面的展示AWR报告对于数据库整体性能分析十分关键学
本章的目的掌握如何解读AWR报告掌握在AWR报告中的一些主要小节的作用掌握AWR报告中的一些主要等待事件的含义掌握AWR报告中的一些主要统计数据的含义掌握如何在AWR报告中分析TOPSQL掌握如何使用AWR报告中的建议解读AWR报告的作用AWR报告是Oracle数据库性能和运行状态的最全面的展示AWR报告对于数据库整体性能分析十分关键
\本章的目的掌握如何解读AWR报告掌握在AWR报告中的一些主要小节的作用掌握AWR报告中的一些主要等待事件的含义掌握AWR报告中的一些主要统计数据的含义掌握如何在AWR报告中分析TOPSQL掌握如何使用AWR报告中的建议\
本章的目的掌握如何解读AWR报告掌握在AWR报告中的一些主要小节的作用掌握AWR报告中的一些主要等待事件的含义掌握AWR报告中的一些主要统计数据的含义掌握如何在AWR报告中分析TOPSQL掌握如何使用AWR报告中的建议解读AWR报告的作用AWR报告是Oracle数据库性能和运行状态的最全面的展示AWR报告对于数据库整体性能分析十分关键学会解读AWR报告是一个高级DBA的必备功课解读AWR报告所需的基础知识
访问路径和SQL性能访问路径决定了执行计划的性能调整访问路径是SQL优化中最为重要的工作在一般OLTP系统中,超过60%的问题是通过调整访问路径解决的调整访问路径的优化成本最低调整访问路径的方法调整索引调整表连接顺序和连接方式选择访问路径(通过HINT,OUTLINES,表分析等方式)什么是索引索引对单表访问的影响根枝页索引单表访问的几种主要方式索引唯一性访问索引范围扫描全索引扫描快速全索引扫描索引跳跃扫描索引访问案例分析
多表连接的优化要点表连接的顺序表连接的方式多表连接的问题最终被分解为多次双表连接本节关注的和不关注的细节本节关注的内容:复杂表连接优化的思路和方法子查询优化的要点外联接优化CONNECTBY的优化本节不关注的内容:执行计划分析表连接方式及相关优化要点表连接的顺序的优化建议表连接顺序最好从业务的角度考虑多表连接可以一层一层分析.
SQL性能访问路径决定了执行计划的性能调整访问路径是SQL优化中最为重要的工作在一般OLTP系统中。
访问路径和SQL性能访问路径决定了执行计划的性能调整访问路径是SQL优化中最为重要的工作在一般OLTP系统中,超过60%的问题是通过调整访问路径解决的调整访问路径的优化成本最低调整访问路径的方法调整索引调整表连接顺序和连接方式选择访问路径(通过HINT,OUTLINES,表分析等方式)什么是索引索引对单表访问的影响根枝页索引单表访问的几种主要方式索引唯一性访问索引范围扫描全索引扫描快速全索引扫描索引跳跃扫描索引访问案例分析
工具可以帮助人思考工具可以提高工作效率工具可以防止信息被忽略工具避免记一些难记的东西......结论:工具不是万能的,但是离开工具是万万不能的SQL优化需要哪些工具TOPSQL抓取类工具会话跟踪类工具SQL分析类工具PL/SQL分析类工具辅助性工具(比如思考树、决策树工具)TOPSQL抓取类工具根据需要抓取TOPSQL物理读、逻辑读、执行次数、解析次数.
外键总结:(上面例证的前提外键是默认的约束类型restrict(noaction))不能删除/更新主键关联列,插入操作随意;不能更新子表外键关联字段,不可插入非外键关联字段,删除操作随意。更新父表非主键关联字段删除/更新父表主键关联字段删除子表任意字段插入子表非外键关联字段插入子表外键关联字段插入父表任意字段还要注意:当两个表主外键列间不满足数据一致完整性时,建立外键连接会报错。
诊断事件在优化中的应用跟踪应用的运行情况了解数据库内部运作的情况分析段数据情况改变数据库运行模式改变优化器行为诊断事件在优化中的应用SQL及应用分析分析会话中SQL执行情况(10046)分析会话中的主要等待事件(10046)分析优化器的行为(10053)
本课程涉及的大部分技术都是无官方正式文档描述,并且无法得到官方技术支持的部分技术可能导致数据库出现故障在没有获得技术支持的情况下,尽量不使用本课程的技术诊断事件诊断事件的主要用途:在分析问题的时候获得更多的信息解决系统问题:修改Oracle的运行特性启用某些内部功能(一般无正式文档支持)千万不要随意使用某个你不十分了解的诊断事件诊断事件分类第*页根据需要DUMP数据用于分析当某个ORA错误发生时产生DUMP修改数据库运行特性在数据库运行的时候获取额外的TRACE信息设置诊断事件参数文件.
排序操作可能产生排序操作的情况ORDERBY语句DISTINCT语句GROUPBY语句高级统计操作(比如CUBE)UNION操作SORTMERGEJOIN操作排序操作的三种模式OPTIMAL或者CACHED完全使用内存排序性能最佳1-PASS排序操作中产生了一次磁盘读写M-PASS排序操作中产生了多次磁盘读写需要尽可能避免排序模式
Oracle数据文件IO相关的因素存储系统OS的相关配置数据文件REDOLOG临时文件与排序控制文件前台进程DBWRLGWRTOPSQL注意:本节所说的Oracle数据文件包含裸设备、ASM、普通文件、CFS文件系统的文件等,是泛指的数据文件Oracle数据文件IO相关的参数
Oracle的DBCACHE存储最近使用过的数据块通过LRU算法管理(8i开始引入了tch)DB_BLOCK_SIZE定义了标准的数据块大小SGABufferHead第*页每个BUFFER都有一个头BH和BUFFER存储在相同的GRANULE里BH包含以下主要内容.
REDOLOG的作用记录ORACLE数据库的变化实例恢复和故障恢复时使用可以避免数据提交后直接写入文件使用归档日志可以做介质恢复REDOLOG的块大小REDO块大小操作系统512字节
数据库启动时固定分配包含以下组件:进程会话SegmentedArrays(锁、事务、资源等)保留池保留给大对象使用的区域只有当共享池无法分配时才分配V$SHARED_POOL_RESERVEDSHARED_POOL_RESERVED_SIZE定义保留池的大小缺省是SHARED_POOL_SIZE的5%_SHARED_POOL_RESERVED_PCT缺省5%_SHARED_POOL_RESERVED_MIN_ALLOC缺省4400超过这个大小才被认为是大对象自动共享内存管理到底如何分配?
Oracle的锁第*页应用级锁:应用中对表等资源进行锁定,保证业务逻辑正确性数据字典锁:Oracle RDBMS内核程序员使用的用来保证数据字典访问逻辑正确性的锁内存控制锁:用来保护Oracle内部数据结构的锁(LATCH,MUTEX)应用程序的锁第
操作系统诊断的目的第*页了解系统资源使用情况建立操作系统性能基线为制定优化方案提供依据操作系统诊断的内容第*页CPU使用情况内存使用情况IO性能网络情况CPU使用情况第*
目的是让开发人员和维护人员能够了解在Oracle的每个模块和OS中消耗了多少时间通过Oracle提供的视图获取这些信息不仅仅供DBA使用,也为OracleRDBMS开发提供帮助OWI分析的主要作用分析系统性能问题的根源找到对系统性能影响最大的问题所在找到TOPSQL诊断系统故障的原因