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

2014-11-24 17:52:26 · 作者: · 浏览: 0

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


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


  1.系统设计阶段:


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


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


  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


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


  访问路径


  表连接顺序


  并发方式


  Statspack(AWR)报告、ASH报告