Oracle性能分析与优化讲座笔记


  一、何时考虑性能的问题。

  考虑性能的问题应该贯穿于整个系统建设的各个阶段中:系统设计、数据库设计、代码开发、系统运维。

  1.系统设计阶段:

  系统架构方面:二层、三层、多层

  系统类型:OLAP——生成报表等,主要考虑海量数据的处理速度

  相关阅读:Oracle根据外键名查关联的表

  OLTP——主要考虑内存(cache)、并发、并行等

  系统生命周期中系统能力的估算:并发数、查询的响应时间等。负面例子:2008北京奥运会订票系统崩溃。

  2.数据库设计阶段,着重考虑数据库对象的类型和属性:

  分区。

  索引及其类型(OLTP,一般用B-Tree;OLAP,一般考虑用Bitmap或Text索引)。

  并行。

  其它的一些对象属性(ASSM、并发属性)。

  内存相关参数。

  并发相关参数。

  I/O相关参数。

  数据库架构(单节点、RAC、分布式)。

  硬件性能(CPU、内存等)。

  3.高效的SQL与变量绑定(OLTP)

  误区:不恰当的使用Hint:强制使用索引、强制设定驱动表、强制优化器模式

  4.对象类型:属性、参数的修改

  二、DBA应该参与到系统建设的各个阶段中,开发人员应尽可能地考虑性能问题。

  三、优化的内容:

  1.参数:OLTP:内存:SGA、PGA

  并行:PROCESSES、SESSIONS

  2.对象属性:分区、并行

  3.索引类型:B-Tree、Bitmap、Text

  4.高效的SQL

  5.SQL执行计划

  6.对表进行分析:直方图,DBMS_STATS包

  四、优化工具

  1.SQL_Trace

  2.10046事件

  3.性能视图,如:V$SQL、V$SESSION、V$LOCK、V$SESSION_LONGOPS

  4.10053事件,将显示Oracle执行计划中的所有详细操作

  5.优化工具:Hint—— 优化器模式

  访问路径

  表连接顺序

  并发方式

  Statspack(AWR)报告、ASH报告

相关内容