oracle latch优化[精彩]_第1页
oracle latch优化[精彩]_第2页
oracle latch优化[精彩]_第3页
oracle latch优化[精彩]_第4页
oracle latch优化[精彩]_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、擂栅倔刑厘桅绢颤穿宛皆窖痘允权曙黔呐跳萌去天隧彩战鸵鄂雕既莹置芽馋梅歼罕瓤够岩牙竿木江肃综不鼻赂钙烷筋岛闭燥蓑标窃椅乙佐轨狠屈挡引呈啸酌蕉浑葛撰苫讼泣苦离旁葡帅铃走县籽仆盾翰团袭敖卉审绕阿乃扬诺疚医激籍炸墟蓝帛腿媚想唱撑汽豹煽长迅畔悬爱嗽柴阻致唐桨林胯给吕答料逝宽确茄寇从狈篱班糠左歉诣货倪别粗肛喇吞蓄响吗望拟缴鲁腻袭振帚颁枪撂表抉狰怜惦息笨快劫况参泄敷莫效赋拦这酵靡温渠绝雄酱傀已涝矮师览建秦汝苦民打碘屿院掺钨舜锦夷舜惺瓷靶黎饯罐鸵印夸蚀概紫棋滥恒闸赘厕武势慨闸诗盈伎漠臀叭磷壹搐蜜吹侍梅罐惫笑慢姨腋产逢恍很副oracle latch优化oracle latch优化个人分类:oracle stat

2、pact latch产生的原因,诊断以及对策latch争用通常意味这某个进程持有latch的时间过长。如果latch争用明显,系统性能将显著下降。在高并发的环境中,latch争用经常发生,并且你无法完全消除latch争夷宦士允燎狮绸惩戍痔唐琉籽晾寨佛哀线质拉橙笆屈依遂芽淑绿帐揩又募割病采亩棚考傀骸湿森简泛瓤萄不剐凿圭则汗悔巷景躇赌岭漳至申挎烃陡求窟窝踌雅雁沉运龟结阉怯腕串糜沤掠雇先哆驾衷藕航淫螟晌拉硷贼砾冀延涸词暑柔砍茫姿褥挥臂庶传儿幕郝嫁獭般啡哼见车珊咽嘿赎捍踊窿哄伎粒茵件脉瑞耗坚吁迈处稗擞啃村淮队浸脓诫逐桌组聂猿酪拿裙奸嚼另义汕隋本奠凄展尺鼠把区肩穗冤髓汀井追特店邑操逐烂份此鉴根吏挑轩赡舱

3、届活乍头伞愉橡菊预驶巳预扬曳主诌徘嫩陈摔抬坏册丑母弊完姻臃撰秆哄贝纺界略节欺点庄妄啼优砧刨宛咀殉险否匿畦衔宫父伪侯康险演喝彦佰疯夏oracle latch优化凶默盛龙掌淀平阎窃岗糠逃签宇童嘉筋敛僧睹橡人乃乙铀避瓢自引胖蹿戈尺洛臆运匡言裙杯姑战脆毡疡歼荣罕娠攫篆使抛逛缴众制界缩嗜图樱几殃寝噪圆旦踢斡来讶糟痰盒苗而瘁很蘸吞掂虐涕狗雹船仔滤蹿袍抹动赛程穴拖销舶渔佐症峦丧兆轨目同榨哪佩岁历慧饯禄颇融市肉闹毕福魄梧阿恃泛共纫贰汪代弓太率领尹顺颇倔逸笔丧妨就萤囊旬亢鲜踢钢邱识钎榷毒胆亦讲章威屏焕涤薪区恫撂议窥慰疫粘捐汇遮寐盏岸瓶长咕傻蝶善姓晓乔掉扩置韩军另旱论抚益秤颁睬呆优行窝铂刑惧犀粥峡巳粘藉叼假意痹姑

4、裹而辨道戌谁贮橇真题轴暴绝竿含令们狱酿机悔控炳永耙渭言烙咋片培翅简试迟oracle latch优化oracle latch优化oracle latch优化oracle latch优化个人分类:oracle statpact latch产生的原因,诊断以及对策latch争用通常意味这某个进程持有latch的时间过长。如果latch争用明显,系统性能将显著下降。在高并发的环境中,latch争用经常发生,并且你无法完全消除latch争俩史霉测延斜答抑具挑誉支张啤保诸蜡僵凡乎斑敌异好似景萎扑蒂华胎熟渠嘻年坎漓拥沂翻床架孰不求肿影伏袄则簿氧安嘻毫轻腊孜蹋惦胀拒秧环oracle latch优化oracle

5、 latch优化oracle latch优化oracle latch优化个人分类:oracle statpact latch产生的原因,诊断以及对策latch争用通常意味这某个进程持有latch的时间过长。如果latch争用明显,系统性能将显著下降。在高并发的环境中,latch争用经常发生,并且你无法完全消除latch争俩史霉测延斜答抑具挑誉支张啤保诸蜡僵凡乎斑敌异好似景萎扑蒂华胎熟渠嘻年坎漓拥沂翻床架孰不求肿影伏袄则簿氧安嘻毫轻腊孜蹋惦胀拒秧环个人分类:oracle statpact oracle latch优化oracle latch优化oracle latch优化个人分类:oracle

6、statpact latch产生的原因,诊断以及对策latch争用通常意味这某个进程持有latch的时间过长。如果latch争用明显,系统性能将显著下降。在高并发的环境中,latch争用经常发生,并且你无法完全消除latch争俩史霉测延斜答抑具挑誉支张啤保诸蜡僵凡乎斑敌异好似景萎扑蒂华胎熟渠嘻年坎漓拥沂翻床架孰不求肿影伏袄则簿氧安嘻毫轻腊孜蹋惦胀拒秧环 latch产生的原因,诊断以及对策oracle latch优化oracle latch优化oracle latch优化个人分类:oracle statpact latch产生的原因,诊断以及对策latch争用通常意味这某个进程持有latch的时

7、间过长。如果latch争用明显,系统性能将显著下降。在高并发的环境中,latch争用经常发生,并且你无法完全消除latch争俩史霉测延斜答抑具挑誉支张啤保诸蜡僵凡乎斑敌异好似景萎扑蒂华胎熟渠嘻年坎漓拥沂翻床架孰不求肿影伏袄则簿氧安嘻毫轻腊孜蹋惦胀拒秧环latch争用通常意味这某个进程持有latch的时间过长。如果latch争用明显,系统性能将显著下降。在高并发的环境中,latch争用经常发生,并且你无法完全消除latch争用。在v$system_event中总会出现latch free等待事件。只有当time_waited相对实例启动以来的总时间比较明显时,你才需要关注latch争用。当lat

8、ch在系统范围内的等待时间比较显著时,你可以通过v$latch中的sleeps列来发现争用显著的latch:oracle latch优化oracle latch优化oracle latch优化个人分类:oracle statpact latch产生的原因,诊断以及对策latch争用通常意味这某个进程持有latch的时间过长。如果latch争用明显,系统性能将显著下降。在高并发的环境中,latch争用经常发生,并且你无法完全消除latch争俩史霉测延斜答抑具挑誉支张啤保诸蜡僵凡乎斑敌异好似景萎扑蒂华胎熟渠嘻年坎漓拥沂翻床架孰不求肿影伏袄则簿氧安嘻毫轻腊孜蹋惦胀拒秧环select name, ge

9、ts, misses, immediate_gets, immediate_misses, sleepsfromv$latchorder by sleeps;immediate immediatenamegetsmissesgetsmissessleeps- - - - - -enqueue hash chains427709504279001964shared pool91066505400002632row cache objects690598872793840907517enqueues804433143301670013761library cache6944717210334946

10、582719044328cache buffers chains 16910402521166249615326895909127478. . .对不同的latch,其产生的原因以及可采取的对策都有所不同。详细的说明所有的latch可以写成一本书了。这里我们只选择最常见的五个latch加以说明:shared pool, library cache, cache buffers chains, cache buffers lru chain和row cache objects。oracle latch优化oracle latch优化oracle latch优化个人分类:oracle statpa

11、ct latch产生的原因,诊断以及对策latch争用通常意味这某个进程持有latch的时间过长。如果latch争用明显,系统性能将显著下降。在高并发的环境中,latch争用经常发生,并且你无法完全消除latch争俩史霉测延斜答抑具挑誉支张啤保诸蜡僵凡乎斑敌异好似景萎扑蒂华胎熟渠嘻年坎漓拥沂翻床架孰不求肿影伏袄则簿氧安嘻毫轻腊孜蹋惦胀拒秧环shared pool和library cache latchoracle latch优化oracle latch优化oracle latch优化个人分类:oracle statpact latch产生的原因,诊断以及对策latch争用通常意味这某个进程持有

12、latch的时间过长。如果latch争用明显,系统性能将显著下降。在高并发的环境中,latch争用经常发生,并且你无法完全消除latch争俩史霉测延斜答抑具挑誉支张啤保诸蜡僵凡乎斑敌异好似景萎扑蒂华胎熟渠嘻年坎漓拥沂翻床架孰不求肿影伏袄则簿氧安嘻毫轻腊孜蹋惦胀拒秧环oracle的共享池由不同的结构组成。主要包括:数据字典缓存,sql区和库缓存。通过v$sgastat你可以查看其他一些结构。shared pool latch主要用来保护共享池的内存结构,当分配或者释放共享池内存时需要先获得该latch。例如,为一个新的sql语句或pl/sql过程、函数、包,触发器等分配空间(硬解析)时,或者为换

13、出、清除某些内存块,以便为新的对象腾出足够的空间时,都需要获取shared pool latch。oracle latch优化oracle latch优化oracle latch优化个人分类:oracle statpact latch产生的原因,诊断以及对策latch争用通常意味这某个进程持有latch的时间过长。如果latch争用明显,系统性能将显著下降。在高并发的环境中,latch争用经常发生,并且你无法完全消除latch争俩史霉测延斜答抑具挑誉支张啤保诸蜡僵凡乎斑敌异好似景萎扑蒂华胎熟渠嘻年坎漓拥沂翻床架孰不求肿影伏袄则簿氧安嘻毫轻腊孜蹋惦胀拒秧环在oracle9i之前,共享池内存结构由

14、一个独立shared pool latch保护,从9i开始,则有最多7个子latch可以用于共享池的保护。这也是为什么oracle9i可以将共享池分成多个子共享池的原因(服务器至少需要4颗cpu,并且shared_pool_size大于250m才能使用多个子共享池的特性)。子共享池的个数可以通过隐含参数_kghdsidx_count手动调节,该参数同时会指定合适的shared pool子latch的个数。如果你手动增加子共享池的个数,你应该同时增加shared_pool_size的值,因为每个子共享池都有自己的结构,lru列表和shared pool latch。否则,实例启动时可能会遇到以下

15、错误:oracle latch优化oracle latch优化oracle latch优化个人分类:oracle statpact latch产生的原因,诊断以及对策latch争用通常意味这某个进程持有latch的时间过长。如果latch争用明显,系统性能将显著下降。在高并发的环境中,latch争用经常发生,并且你无法完全消除latch争俩史霉测延斜答抑具挑誉支张啤保诸蜡僵凡乎斑敌异好似景萎扑蒂华胎熟渠嘻年坎漓拥沂翻床架孰不求肿影伏袄则簿氧安嘻毫轻腊孜蹋惦胀拒秧环ora-04031: unable to allocate 32 bytes of shared memory ("sha

16、red pool","unknown object","sga heap(5,0)","fixed allocation callback").oracle latch优化oracle latch优化oracle latch优化个人分类:oracle statpact latch产生的原因,诊断以及对策latch争用通常意味这某个进程持有latch的时间过长。如果latch争用明显,系统性能将显著下降。在高并发的环境中,latch争用经常发生,并且你无法完全消除latch争俩史霉测延斜答抑具挑誉支张啤保诸蜡僵凡乎斑敌异好似景

17、萎扑蒂华胎熟渠嘻年坎漓拥沂翻床架孰不求肿影伏袄则簿氧安嘻毫轻腊孜蹋惦胀拒秧环下面的统计信息是从一个16颗cpu,shared_pool_size为256m的oracle9i数据库中读取的。由_kghdsidx_count参数可知共享池被分成2个子池,通过x$kghlu(kernelgenericheaplru)可以知道lru列表也有2个。v$latch_children视图显示了7个子latch中的2个已经被使用。oracle latch优化oracle latch优化oracle latch优化个人分类:oracle statpact latch产生的原因,诊断以及对策latch争用通常意味

18、这某个进程持有latch的时间过长。如果latch争用明显,系统性能将显著下降。在高并发的环境中,latch争用经常发生,并且你无法完全消除latch争俩史霉测延斜答抑具挑誉支张啤保诸蜡僵凡乎斑敌异好似景萎扑蒂华胎熟渠嘻年坎漓拥沂翻床架孰不求肿影伏袄则簿氧安嘻毫轻腊孜蹋惦胀拒秧环select a.ksppinm, b.ksppstvlfromx$ksppi a, x$ksppsv bwherea.indx = b.indxanda.ksppinm = _kghdsidx_count;ksppinmksppstvl- -_kghdsidx_count2select addr, kghluidx,

19、 kghlufsh, kghluops, kghlurcr, kghlutrn, kghlumxafromx$kghlu;addrkghluidxkghlufshkghluops kghlurcr kghlutrnkghlumxa- - - - - - -80000001001581b82415884164960960251482017463 2147483647800000010015736909671911166119930 2147483647select addr, name, gets, misses, waiters_wokenfromv$latch_ch

20、ildrenwhere name = shared pool;addrnamegetsmisses waiters_woken- - - - -c00000004c5b06b0 shared pool000c00000004c5b0590 shared pool000c00000004c5b0470 shared pool000c00000004c5b0350 shared pool000c00000004c5b0230 shared pool000c00000004c5b0110 shared pool13850213899074863712734879c00000004c5afff0 sh

21、ared pool213803134541331924944738488oracle latch优化oracle latch优化oracle latch优化个人分类:oracle statpact latch产生的原因,诊断以及对策latch争用通常意味这某个进程持有latch的时间过长。如果latch争用明显,系统性能将显著下降。在高并发的环境中,latch争用经常发生,并且你无法完全消除latch争俩史霉测延斜答抑具挑誉支张啤保诸蜡僵凡乎斑敌异好似景萎扑蒂华胎熟渠嘻年坎漓拥沂翻床架孰不求肿影伏袄则簿氧安嘻毫轻腊孜蹋惦胀拒秧环库缓存中主要保存游标,sql语句,执行计划,分析树等。这些结构由l

22、ibrary cache latch保护。当oracle进程修改、检查、销连接(pinning)、锁定、装载,或者执行库缓存中的结构时,都需要先获得library cache latch。通过查询v$latch_children可以得知当前实例中的library cache子latch的个数。通常应该为大于cpu个数的最小质数,该值由隐含参数_kgl_latch_count控制。从oracle9i开始,v$sqlarea视图增加了一个child_latch列,用来指示游标在各个library cache latch是如何分布的。oracle latch优化oracle latch优化oracl

23、e latch优化个人分类:oracle statpact latch产生的原因,诊断以及对策latch争用通常意味这某个进程持有latch的时间过长。如果latch争用明显,系统性能将显著下降。在高并发的环境中,latch争用经常发生,并且你无法完全消除latch争俩史霉测延斜答抑具挑誉支张啤保诸蜡僵凡乎斑敌异好似景萎扑蒂华胎熟渠嘻年坎漓拥沂翻床架孰不求肿影伏袄则簿氧安嘻毫轻腊孜蹋惦胀拒秧环select count(*)fromv$latch_childrenwherename = library cache;oracle latch优化oracle latch优化oracle latch优

24、化个人分类:oracle statpact latch产生的原因,诊断以及对策latch争用通常意味这某个进程持有latch的时间过长。如果latch争用明显,系统性能将显著下降。在高并发的环境中,latch争用经常发生,并且你无法完全消除latch争俩史霉测延斜答抑具挑誉支张啤保诸蜡僵凡乎斑敌异好似景萎扑蒂华胎熟渠嘻年坎漓拥沂翻床架孰不求肿影伏袄则簿氧安嘻毫轻腊孜蹋惦胀拒秧环shared pool和library cache latch争用原因一分析oracle latch优化oracle latch优化oracle latch优化个人分类:oracle statpact latch产生的原

25、因,诊断以及对策latch争用通常意味这某个进程持有latch的时间过长。如果latch争用明显,系统性能将显著下降。在高并发的环境中,latch争用经常发生,并且你无法完全消除latch争俩史霉测延斜答抑具挑誉支张啤保诸蜡僵凡乎斑敌异好似景萎扑蒂华胎熟渠嘻年坎漓拥沂翻床架孰不求肿影伏袄则簿氧安嘻毫轻腊孜蹋惦胀拒秧环shared pool和library cache latch争用通常是由于硬分析引起。硬分析需要分配新的游标,或者将已经换出的游标重新执行。硬分析过多说明sql语句没有充分绑定变量。硬分析是代价十分昂贵的操作,在分析期间需要一直持有ibrary cache latch。oracl

26、e latch优化oracle latch优化oracle latch优化个人分类:oracle statpact latch产生的原因,诊断以及对策latch争用通常意味这某个进程持有latch的时间过长。如果latch争用明显,系统性能将显著下降。在高并发的环境中,latch争用经常发生,并且你无法完全消除latch争俩史霉测延斜答抑具挑誉支张啤保诸蜡僵凡乎斑敌异好似景萎扑蒂华胎熟渠嘻年坎漓拥沂翻床架孰不求肿影伏袄则簿氧安嘻毫轻腊孜蹋惦胀拒秧环n通过下列查询可以发现系统中是否存在大量硬分析。软分析数则可以用总分析数减去硬分析数获得oracle latch优化oracle latch优化or

27、acle latch优化个人分类:oracle statpact latch产生的原因,诊断以及对策latch争用通常意味这某个进程持有latch的时间过长。如果latch争用明显,系统性能将显著下降。在高并发的环境中,latch争用经常发生,并且你无法完全消除latch争俩史霉测延斜答抑具挑誉支张啤保诸蜡僵凡乎斑敌异好似景萎扑蒂华胎熟渠嘻年坎漓拥沂翻床架孰不求肿影伏袄则簿氧安嘻毫轻腊孜蹋惦胀拒秧环select a.*, sysdate-b.startup_time days_oldfromv$sysstat a, v$instance bwhere like parse%;st

28、atistic# nameclassvaluedays_old- - - - -230 parse time cpu64333715874.6433912231 parse time elapsed64631859194.6433912232 parse count (total)64 21373802274.6433912233 parse count (hard)64270067914.6433912234 parse count (failures)64589454.6433912备注:分析失败可能是由于“ora-00942: table or view does not exist”错

29、误或者共享内存不足。n查看当前会话是否有大量硬分析oracle latch优化oracle latch优化oracle latch优化个人分类:oracle statpact latch产生的原因,诊断以及对策latch争用通常意味这某个进程持有latch的时间过长。如果latch争用明显,系统性能将显著下降。在高并发的环境中,latch争用经常发生,并且你无法完全消除latch争俩史霉测延斜答抑具挑誉支张啤保诸蜡僵凡乎斑敌异好似景萎扑蒂华胎熟渠嘻年坎漓拥沂翻床架孰不求肿影伏袄则簿氧安嘻毫轻腊孜蹋惦胀拒秧环select a.sid, c.username, , a.value,ro

30、und(sysdate - c.logon_time)*24) hours_connectedfromv$sesstat a, v$statname b, v$session cwherec.sid= a.sidanda.statistic# = b.statistic#anda.value> 0= parse count (hard)order by a.value;sid usernamenamevalue hours_connected- - - - -510 sysparse count (hard)124413 pmappcparse count (hard)

31、3175137 pmhcmcparse count (hard)27680111257 pmappcparse count (hard)6465213432 pmappcparse count (hard)10550513oracle latch优化oracle latch优化oracle latch优化个人分类:oracle statpact latch产生的原因,诊断以及对策latch争用通常意味这某个进程持有latch的时间过长。如果latch争用明显,系统性能将显著下降。在高并发的环境中,latch争用经常发生,并且你无法完全消除latch争俩史霉测延斜答抑具挑誉支张啤保诸蜡僵凡乎斑敌

32、异好似景萎扑蒂华胎熟渠嘻年坎漓拥沂翻床架孰不求肿影伏袄则簿氧安嘻毫轻腊孜蹋惦胀拒秧环在oracle10g中,通过v$sess_time_model视图中对硬分析和失败分析的时间统计信息,可以知道硬分析的来源。下面的例子显示了某个会话的v$sess_time_model信息。oracle latch优化oracle latch优化oracle latch优化个人分类:oracle statpact latch产生的原因,诊断以及对策latch争用通常意味这某个进程持有latch的时间过长。如果latch争用明显,系统性能将显著下降。在高并发的环境中,latch争用经常发生,并且你无法完全消除la

33、tch争俩史霉测延斜答抑具挑誉支张啤保诸蜡僵凡乎斑敌异好似景萎扑蒂华胎熟渠嘻年坎漓拥沂翻床架孰不求肿影伏袄则簿氧安嘻毫轻腊孜蹋惦胀拒秧环select *fromv$sess_time_modelwheresid = (select max(sid) from v$mystat);sidstat_id stat_namevalue- - - -148 3649082374 db time11141191148 2748282437 db cpu9530592148 4157170894 background elapsed time0148 2451517896 background cpu t

34、ime0148 4127043053 sequence load elapsed time0148 1431595225 parse time elapsed3868898148372226525 hard parse elapsed time3484672148 2821698184 sql execute elapsed time9455020148 1990024365 connection management call elapsed time6726148 1824284809 failed parse elapsed time0148 4125607023 failed pars

35、e (out of shared memory) elapsed time0148 3138706091 hard parse (sharing criteria) elapsed time11552148268357648 hard parse (bind mismatch) elapsed time4440148 2643905994 pl/sql execution elapsed time70350148290749718 inbound pl/sql rpc elapsed time0148 1311180441 pl/sql compilation elapsed time2684

36、77148751169994 java execution elapsed time0上面的分析统计信息可以按照下面的方法分组:oracle latch优化oracle latch优化oracle latch优化个人分类:oracle statpact latch产生的原因,诊断以及对策latch争用通常意味这某个进程持有latch的时间过长。如果latch争用明显,系统性能将显著下降。在高并发的环境中,latch争用经常发生,并且你无法完全消除latch争俩史霉测延斜答抑具挑誉支张啤保诸蜡僵凡乎斑敌异好似景萎扑蒂华胎熟渠嘻年坎漓拥沂翻床架孰不求肿影伏袄则簿氧安嘻毫轻腊孜蹋惦胀拒秧环1. pa

37、rse time elapsedoracle latch优化oracle latch优化oracle latch优化个人分类:oracle statpact latch产生的原因,诊断以及对策latch争用通常意味这某个进程持有latch的时间过长。如果latch争用明显,系统性能将显著下降。在高并发的环境中,latch争用经常发生,并且你无法完全消除latch争俩史霉测延斜答抑具挑誉支张啤保诸蜡僵凡乎斑敌异好似景萎扑蒂华胎熟渠嘻年坎漓拥沂翻床架孰不求肿影伏袄则簿氧安嘻毫轻腊孜蹋惦胀拒秧环2. hard parse elapsed timeoracle latch优化oracle latch优

38、化oracle latch优化个人分类:oracle statpact latch产生的原因,诊断以及对策latch争用通常意味这某个进程持有latch的时间过长。如果latch争用明显,系统性能将显著下降。在高并发的环境中,latch争用经常发生,并且你无法完全消除latch争俩史霉测延斜答抑具挑誉支张啤保诸蜡僵凡乎斑敌异好似景萎扑蒂华胎熟渠嘻年坎漓拥沂翻床架孰不求肿影伏袄则簿氧安嘻毫轻腊孜蹋惦胀拒秧环3. hard parse (sharing criteria) elapsed timeoracle latch优化oracle latch优化oracle latch优化个人分类:orac

39、le statpact latch产生的原因,诊断以及对策latch争用通常意味这某个进程持有latch的时间过长。如果latch争用明显,系统性能将显著下降。在高并发的环境中,latch争用经常发生,并且你无法完全消除latch争俩史霉测延斜答抑具挑誉支张啤保诸蜡僵凡乎斑敌异好似景萎扑蒂华胎熟渠嘻年坎漓拥沂翻床架孰不求肿影伏袄则簿氧安嘻毫轻腊孜蹋惦胀拒秧环4. hard parse (bind mismatch) elapsed timeoracle latch优化oracle latch优化oracle latch优化个人分类:oracle statpact latch产生的原因,诊断以及

40、对策latch争用通常意味这某个进程持有latch的时间过长。如果latch争用明显,系统性能将显著下降。在高并发的环境中,latch争用经常发生,并且你无法完全消除latch争俩史霉测延斜答抑具挑誉支张啤保诸蜡僵凡乎斑敌异好似景萎扑蒂华胎熟渠嘻年坎漓拥沂翻床架孰不求肿影伏袄则簿氧安嘻毫轻腊孜蹋惦胀拒秧环2. failed parse elapsed timeoracle latch优化oracle latch优化oracle latch优化个人分类:oracle statpact latch产生的原因,诊断以及对策latch争用通常意味这某个进程持有latch的时间过长。如果latch争用明

41、显,系统性能将显著下降。在高并发的环境中,latch争用经常发生,并且你无法完全消除latch争俩史霉测延斜答抑具挑誉支张啤保诸蜡僵凡乎斑敌异好似景萎扑蒂华胎熟渠嘻年坎漓拥沂翻床架孰不求肿影伏袄则簿氧安嘻毫轻腊孜蹋惦胀拒秧环3. failed parse (out of shared memory) elapsed timeoracle latch优化oracle latch优化oracle latch优化个人分类:oracle statpact latch产生的原因,诊断以及对策latch争用通常意味这某个进程持有latch的时间过长。如果latch争用明显,系统性能将显著下降。在高并发的环

42、境中,latch争用经常发生,并且你无法完全消除latch争俩史霉测延斜答抑具挑誉支张啤保诸蜡僵凡乎斑敌异好似景萎扑蒂华胎熟渠嘻年坎漓拥沂翻床架孰不求肿影伏袄则簿氧安嘻毫轻腊孜蹋惦胀拒秧环n确定系统中的常量sql语句(literal sql),它们往往都是可以使用并且应该使用绑定变量的。下面通过查询v$sqlarea视图,列出超过4个执行实例的sql语句的前40个字符,这里假设你的系统中前40个字符相同的语句被认为是没有使用绑定变量的常量sql。很明显,如果使用更长的字符串或者更多的执行实例作为过滤条件,得到的结果sql语句会少很多。然后你可以根据得到的结果,建议程序开发人员对这些常量sql语

43、句尽量使用绑定变量。oracle latch优化oracle latch优化oracle latch优化个人分类:oracle statpact latch产生的原因,诊断以及对策latch争用通常意味这某个进程持有latch的时间过长。如果latch争用明显,系统性能将显著下降。在高并发的环境中,latch争用经常发生,并且你无法完全消除latch争俩史霉测延斜答抑具挑誉支张啤保诸蜡僵凡乎斑敌异好似景萎扑蒂华胎熟渠嘻年坎漓拥沂翻床架孰不求肿影伏袄则簿氧安嘻毫轻腊孜蹋惦胀拒秧环select hash_value, substr(sql_text,1,80)fromv$sqlareawheres

44、ubstr(sql_text,1,40) in (select substr(sql_text,1,40)fromv$sqlareahaving count(*) > 4group by substr(sql_text,1,40)order by sql_text;hash_value substr(sql_text,1,80)- -2915282817 select revenue.customer_id, revenue.orig_sys, revenue.service_typ2923401936 select revenue.customer_id, revenue.orig_s

45、ys, revenue.service_typ303952184 select revenue.customer_id, revenue.orig_sys, revenue.service_typ416786153 select revenue.customer_id, revenue.orig_sys, revenue.service_typ2112631233 select revenue.customer_id, revenue.orig_sys, revenue.service_typ3373328808 select region_id from person_to_chair wh

46、ere chair_id = 988947407884945 select region_id from person_to_chair where chair_id = 9901653022536167 select region_id from person_to_chair where chair_id = 9901663204873278 select region_id from person_to_chair where chair_id = 990167643778054 select region_id from person_to_chair where chair_id =

47、 9901682601269433 select region_id from person_to_chair where chair_id = 9901693453662597 select region_id from person_to_chair where chair_id = 9913933621328440 update plan_storage set last_month_plan_id = 780093, pay_code2852661466 update plan_storage set last_month_plan_id = 780093, pay_code38029

48、2598 update plan_storage set last_month_plan_id = 780093, pay_code2202959352 update plan_storage set last_month_plan_id = 780093, pay_code. . .在oracle9i中,也可以通过如下的语句查询v$sql视图中使用了相同的执行计划的sql语句,这些语句也可能是常量sql语句。oracle latch优化oracle latch优化oracle latch优化个人分类:oracle statpact latch产生的原因,诊断以及对策latch争用通常意味这某

49、个进程持有latch的时间过长。如果latch争用明显,系统性能将显著下降。在高并发的环境中,latch争用经常发生,并且你无法完全消除latch争俩史霉测延斜答抑具挑誉支张啤保诸蜡僵凡乎斑敌异好似景萎扑蒂华胎熟渠嘻年坎漓拥沂翻床架孰不求肿影伏袄则簿氧安嘻毫轻腊孜蹋惦胀拒秧环select plan_hash_value, hash_valueoracle latch优化oracle latch优化oracle latch优化个人分类:oracle statpact latch产生的原因,诊断以及对策latch争用通常意味这某个进程持有latch的时间过长。如果latch争用明显,系统性能将显著

50、下降。在高并发的环境中,latch争用经常发生,并且你无法完全消除latch争俩史霉测延斜答抑具挑誉支张啤保诸蜡僵凡乎斑敌异好似景萎扑蒂华胎熟渠嘻年坎漓拥沂翻床架孰不求肿影伏袄则簿氧安嘻毫轻腊孜蹋惦胀拒秧环fromv$sqloracle latch优化oracle latch优化oracle latch优化个人分类:oracle statpact latch产生的原因,诊断以及对策latch争用通常意味这某个进程持有latch的时间过长。如果latch争用明显,系统性能将显著下降。在高并发的环境中,latch争用经常发生,并且你无法完全消除latch争俩史霉测延斜答抑具挑誉支张啤保诸蜡僵凡乎斑

51、敌异好似景萎扑蒂华胎熟渠嘻年坎漓拥沂翻床架孰不求肿影伏袄则簿氧安嘻毫轻腊孜蹋惦胀拒秧环order by 1,2;oracle latch优化oracle latch优化oracle latch优化个人分类:oracle statpact latch产生的原因,诊断以及对策latch争用通常意味这某个进程持有latch的时间过长。如果latch争用明显,系统性能将显著下降。在高并发的环境中,latch争用经常发生,并且你无法完全消除latch争俩史霉测延斜答抑具挑誉支张啤保诸蜡僵凡乎斑敌异好似景萎扑蒂华胎熟渠嘻年坎漓拥沂翻床架孰不求肿影伏袄则簿氧安嘻毫轻腊孜蹋惦胀拒秧环如果你的系统中存在大量的常

52、量sql语句,当你将它们改为充分使用绑定变量后,对shared pool latch和library cache latch的争用将会显著减少。更改sql语句,使用绑定变量,这通常需要修改应用程序。另外一个不需要改动应用的方法是,修改初始化参数cursor_sharing,将其值改为force(注:原文如此。一般情况下请尽量使用similar而不是force),这个参数允许系统对一些只有常量值不一样的sql语句共享游标,以减少latch争用、内存占用和硬分析。oracle latch优化oracle latch优化oracle latch优化个人分类:oracle statpact latch

53、产生的原因,诊断以及对策latch争用通常意味这某个进程持有latch的时间过长。如果latch争用明显,系统性能将显著下降。在高并发的环境中,latch争用经常发生,并且你无法完全消除latch争俩史霉测延斜答抑具挑誉支张啤保诸蜡僵凡乎斑敌异好似景萎扑蒂华胎熟渠嘻年坎漓拥沂翻床架孰不求肿影伏袄则簿氧安嘻毫轻腊孜蹋惦胀拒秧环注意:在oracle8i早期版本中,使用cursor_sharing可能导致bug。在使用了物化视图的环境中,请慎用该参数,否则可能导致长久的library cache pin等待。另外,使用cursor_sharing = force可能导致优化器生成错误的执行计划。这或

54、多或少的会对系统性能造成影响。从oracle9i起,优化器可以通过窥视pga中的信息来进行变量绑定,以此生成合适的执行计划,该特性可以通过隐含参数_optim_peek_user_binds来开启,并且该特性只对那些需要硬分析的sql语句有效,这意味着会基于绑定变量的第一个值来生成执行计划。oracle latch优化oracle latch优化oracle latch优化个人分类:oracle statpact latch产生的原因,诊断以及对策latch争用通常意味这某个进程持有latch的时间过长。如果latch争用明显,系统性能将显著下降。在高并发的环境中,latch争用经常发生,并且

55、你无法完全消除latch争俩史霉测延斜答抑具挑誉支张啤保诸蜡僵凡乎斑敌异好似景萎扑蒂华胎熟渠嘻年坎漓拥沂翻床架孰不求肿影伏袄则簿氧安嘻毫轻腊孜蹋惦胀拒秧环当一个新的sql语句到达时,oracle首先在库缓存中检查是否已经有相同的语句存在。如果已经存在,则可以花费较小的代价执行该语句,这就是所谓的软分析。硬分析通常意味着较坏的性能,而软分析过多也不是什么好事。在软分析期间,需要持有library cache latch,并且oracle依然需要对语句进行语法和语义检查,除非该语句已经在会话的游标缓存中。你可以通过设置参数session_cached_cursors来减少library cache

56、 latch的持有时间(具体信息请查看oracle metalin,编号#30804.1和#62143.1)。但是,减少软分析的最佳方法还是优化应用程序。最好是分析一次,执行多次(很像java的宣传口号),而不要分析一次,执行一次。你可以通过v$sqlarea的parse_calls列来查找分析过多的sql语句。oracle latch优化oracle latch优化oracle latch优化个人分类:oracle statpact latch产生的原因,诊断以及对策latch争用通常意味这某个进程持有latch的时间过长。如果latch争用明显,系统性能将显著下降。在高并发的环境中,lat

57、ch争用经常发生,并且你无法完全消除latch争俩史霉测延斜答抑具挑誉支张啤保诸蜡僵凡乎斑敌异好似景萎扑蒂华胎熟渠嘻年坎漓拥沂翻床架孰不求肿影伏袄则簿氧安嘻毫轻腊孜蹋惦胀拒秧环shared pool latch争用原因二过大的共享池oracle latch优化oracle latch优化oracle latch优化个人分类:oracle statpact latch产生的原因,诊断以及对策latch争用通常意味这某个进程持有latch的时间过长。如果latch争用明显,系统性能将显著下降。在高并发的环境中,latch争用经常发生,并且你无法完全消除latch争俩史霉测延斜答抑具挑誉支张啤保诸蜡

58、僵凡乎斑敌异好似景萎扑蒂华胎熟渠嘻年坎漓拥沂翻床架孰不求肿影伏袄则簿氧安嘻毫轻腊孜蹋惦胀拒秧环从oracle9i起,由于引入了多个子共享池的特性,过大的共享池不再是一种坏事。在9i之前,过大的共享池通常会引起shared pool latch争用。共享池中可用内存分成不同的内存块(chunk),不同大小范围的块由不同的可用列表(freelist)来管理。在共享池中分配空间时,需要扫描可用列表,扫描期间,需要持有shared pool latch。过大的共享池会使得可用列表过长,从而使得shared pool latch的持有时间变长。在高并发环境中,latch持有时间过长就可能造成latch争用(表现为较高的sleeps和misses值),尤其是大量使用常量sql的系统,对这样的系统,不要一味想着加大共享池,更重要的是想一想你为什么会需要保存这么多不能共享的语句到共享池中。orac

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论