资源描述:
《2008-05-07_《rac最佳实践》精华总结_jason zhang》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、“RAC最佳实践”精华总结如果调整应用后逻辑读突然提供50%,需要立刻性能调优。Statspack和AWR中的Top5等待事件是性能调整的重点。严重的CPU使用,往往是糟糕的SQL语句所致。如果完全调优后CPU还很高,需要增加CPU或节点数。其次,也有可能是数据库的某个Bug。会话级别的动态性能统计:V$SESSTAT,V$SESSION_EVENTselecte.sid,e.time_waited,s.program,s.modulefromv$session_evente,v$sessionswheres.sid=e.sidand
2、e.event=gccurrentblockbusyorderbye.time_waited;selectst.sid,st.value,s.program,s.modulefromv$sesstatst,v$sessions,v$statnamenwheres.sid=st.sidandst.statistic#=n.statistic#andn.name=gcCPUusedbythissessionorderbyst.value;数据段统计lV$SEGMENT_STATISTICS:当STATISTICS_LEVEL参数为TYPI
3、CAL时,存储每个数据段的统计信息。不包括undoblock和undoheadertransfers。lV$INSTANCE_CACHE_TRANSFER:标识块级别主题到剧烈的全局缓存活动,并有那个实例传输了最多的数据块。select*fromv$instance_cache_transferwherecr_busy>0orderbycr_busy;标识在全局缓存中的长等待的SQLselectsubstr(sql_text,1,50),cluster_wait_timefromv$sqlwherecluster_wait_time>
4、0orderby2;其中cluster_wait_time为只完成的调用部分,长时间运行的可能得不到。服务的性能统计selectSERVICE_NAME,EVENT,TIME_WAITEDfromv$service_eventwhereeventlike'gccr%'orderby3;selectEVENT,TIME_WAITEDfromv$service_eventwhereeventlike'gc%'andSERVICE_NAME=?ORDER_ENTRY?orderby2;RAC通用调优方法1.提高buffercache命中率:
5、调整buffercache;在OLTP中避免大的全表扫描;使用bufferpools(keep/recycle),并使用IOT和IOT溢出2.避免对小的数据集合的争抢:latchfree、bufferbusywait3.避免分析4.最小的锁使用5.删除不必要的索引6.提高本地缓存访问:使用ASSM;序列缓存,特别在插入操作时7.使用分区隔离实例间数据通讯:范围和列表分区在一定范围的数据;哈希分区降低bufferbusy争用8.使用数据隔离9.只读表放到只读表空间10.改变锁机制:只读表空间;测试中可考虑GC_FILES_TO_LOCK
6、S参数典型的RAC操作延迟V$CURRENT_BLOCK-SERVERStatspack延迟名称毫秒低范围通常高范围AvetimetoprocessCRblockrequest0.1110AvereceivetimeforCRblock0.3412Avetimetoprocesscurrentblockrequest0.1323Avereceivetimeforcurrentblock0.3830V$GES_STATISTICS:最常见的问题CR请求和buffer等待在远端的回滚段头V$CR_BLOCK_SERVER,V$SESSIO
7、N_WAIT和V$SESSION_WAIT_HISTORY帮助识别回滚段,通过P1和P2字段设置参数:_row_cr=TRUELibraryCacheLocks在PL/SQL和高级队列常较高:事件10706V$ENQUEUE_STATS,V$SEGMENT_STATS,10046:bufferbusy等待有关叶数据块分裂的最通用征兆WaiteventsSystemStatisticsBufferbusylocationscausingmostofthewaitsenq:TX-indexcontentionLeafnodesplitsK
8、difind:kdiwh17gcbufferbusyBranchnodesplitKdifind:kdiwh22GccurrentblockbusyExchangedeadlocksGccurrentsplitGcsre