资源描述:
《九大oracle性能优化基本方法详解》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、九大Oracle性能优化基本方法详解九大Oracle性能优化基本方法详解 Oracle性能优化基本方法包括一下几个步骤,包括: 1)设立合理的Oracle性能优化目标。 2)测量并记录当前的Oracle性能。 3)确定当前Oracle性能瓶颈(Oracle等待什么、哪些SQL语句是该等待事件的成分)。 4)把等待事件记入跟踪文件。 5)确定当前的OS瓶颈。 6)优化所需的成分(应用程序、数据库、I/O、争用、OS等)。 7)跟踪并实施更改控制过程。 8)测量并记录当前性能 9)重复步骤3到7,直到满足优化目标 下面来一一详述。 1.
2、设立合理的Oracle性能优化目标 重点:关于设立目标的最重要的一点是它们必须是可量化和可达到的。 方法:目标必须是当前性能和所需性能的的陈述形式的语句。 2.测量并记录当前Oracle性能重点: 1)需要在峰值活动时间获得当前系统性能快照 2)关键是要在出现性能问题的时间段内采集信息 3)必须在合理的时间段上采集,一般在峰值期间照几个为期15分钟的快照 3.确定当前Oracle性能瓶颈重点:从Oracle等待接口v$system_event、v$session_event和v$session_wait中获得等待事件,进而找出影响性能的对象
3、和sql语句。方法如下: 1)首先,利用v$system_event视图执行下面的查询查看数据库中某些常见的等待事件: 1.select*fromv$system_event 2. 3.whereeventin('bufferbusywaits', 4. 5.'dbfilesequentialread', 6. 7.'dbfilescatteredread', 8. 9.'enqueue', 10. 11.'freebufferwaits', 12. 13.'latchfree', 14. 15.'logfileparal
4、lelwrite', 16. 17.'logfilesync'); 18. 2)接着,利用下面对v$session_event和v$session视图进行的查询,研究具有对上面显示的内容有贡献的等待事件的会话: 1.selectse.sid,s.username,se.event,se.total_waits,se.time_waited,se.average_wait 2. 3.fromv$sessions,v$session_eventse 4. 5.wheres.sid=se.sid 6. 7.andse.eventnotli
5、ke'SQL*Net%' 8. 9.ands.status='ACTIVE' 10. 11.ands.usernameisnotnull; 12.3)使用下面查询找到与所连接的会话有关的当前等待事件。这些信息是动态的,为了查看一个会话的等待最多的事件是什么,需要多次执行此查询。 1.selectsw.sid,s.username,sw.event,sw.wait_time,sw.state,sw.seconds_in_waitSEC_IN_WAIT 2. 3.fromv$sessions,v$session_waitsw 4. 5.w
6、heres.sid=sw.sid 6. 7.andsw.eventnotlike'SQL*Net%' 8. 9.ands.usernameisnotnull 10. 11.orderbysw.wait_timedesc; 12. 4)查询会话等待事件的详细信息 1.selectsid,event,p1text,p1,p2text,p2,p3text,p3 2. 3.fromv$session_wait 4. 5.wheresidbetween&1and&2 6. 7.andeventnotlike'%SQL%' 8. 9
7、.andeventnotlike'%rdbms%'; 10. 5)利用P1、P2的信息,找出等待事件的相关的段 1.selectowner,segment_name,segment_type,tablespace_name 2. 3.fromdba_extents 4. 5.wherefile_id=&fileid_in 6. 7.and&blockid_inbetweenblock_idandblock_id+blocks-1; 8. 6)获得操作该段的sql语句: 1.selectsid,getsqltxt(sql_hash_v
8、alue,sql_address) 2. 3.fromv$session