好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

Oracle数据库性能优化实务_闩锁及闩锁优化.pptx

33页
  • 卖家[上传人]:鲁**
  • 文档编号:601645588
  • 上传时间:2025-05-16
  • 文档格式:PPTX
  • 文档大小:581.92KB
  • / 33 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,,‹#›,单击此处编辑母版标题样式,,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,单击此处编辑母版标题样式,,,华章培训,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,单击此处编辑母版标题样式,第,‹#›,页,,,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,单击此处编辑母版标题样式,‹#›,,,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,单击此处编辑母版标题样式,,‹#›,,,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,单击此处编辑母版标题样式,,‹#›,,,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,单击此处编辑母版标题样式,,‹#›,,,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,单击此处编辑母版标题样式,,‹#›,O,racle数据库性能优化实务,第四讲:闩锁及闩锁优化,主讲人:白鳝,Oracle,的,的锁,第,2,页,应用级,锁,锁:应,用,用中对,表,表等资,源,源进行,锁,锁定,,保,保证业,务,务逻辑,正,正确性,数据字,典,典锁:OracleRDBMS,内,内核程,序,序员使,用,用的用,来,来保证,数,数据字,典,典访问,逻,逻辑正,确,确性的,锁,锁,内存控,制,制锁:,用,用来保,护,护Oracle内部,数,数据结,构,构的锁,(,(LATCH,,,,MUTEX,),),应用程,序,序的锁,第,3,页,应用程,序,序锁的,优,优化取,决,决于应,用,用软件,编,编写人,员,员,使用v,$,$lock可,以,以观察,锁,锁的情,况,况(TM,TX),?/rdbms/admin/catblock.sql,使用dba_waiters,dba_blockers来,查,查找阻,塞,塞,数据字,典,典的锁,第,4,页,OracleRDBMS,也,也是一,个,个“程,序,序”,,需,需要通,过,过锁机,制,制来保,证,证程序,的,的逻辑,比如创,建,建一张,表,表要插,入,入sys.tab$,和,和sys.obj$,等,等数据,字,字典表,类似这,些,些操作,也,也会在v$lock,看,看到,锁的名,字,字是特,殊,殊的,管理共,享,享内存,的,的锁,Oracle,的,的内存,结,结构也,必,必须进,行,行同步,互,互斥保,护,护,Oracle,通,通过对,访,访问核,心,心内存,结,结构的,代,代码的,执,执行进,行,行控制,来,来达到,间,间接的,保,保护核,心,心内存,的,的目的,每个LATCH都涉,及,及到特,定,定的内,核,核代码,要执行,某,某个代,码,码,必,须,须先获,得,得相应,的,的LATCH,Oracle,通,通过上,述,述过程,,,,可以,保,保证核,心,心内存,访,访问的,高,高效性,和,和一致,性,性,什么是,闩,闩锁,Latch可,以,以保证Oracle,串,串行访,问,问核心,内,内存,Latch必,须,须十分,高,高效,Latch通,过,过简单,的,的底层,的,的技术,实,实现,,尽,尽可能,使,使用操,作,作系统,的,的底层,技,技术,Latch的,申,申请不,通,通过队,列,列机制,闩锁的,使,使用,Ifget,_,_latch,(,(‘latch name,’,’,mode),{,--执,行,行某段,内,内核代,码,码,release(‘latchname’),;,;,},MUTLI-LATCH,Oracle,对,对特定,的,的内核,内,内存只,使,使用一,个,个LATCH,来,来保护,如果某,些,些内核,内,内存太,大,大,Oracle会,分,分为一,些,些子区,域,域,每,个,个子区,域,域由一,个,个LATCH,来,来管理,,,,比如,:,:,多个相,同,同功能,的,的LRU LATCH用来,保,保护多,条,条LRU链,多个HASHLATCH,来,来保护,多,多条HASH,链,链,一个LATCH可以,保,保护多,个,个内核,内,内存区,域,域,但,是,是一个,内,内核内,存,存区域,只,只有一,个,个LATCH,LATCH的,模,模拟算,法,法,FunctionGet,_,_Latch,(,(latch,_,_name,mode){,IfMode eq ‘immediate,’,’ {,IfFast_Get,(,(latch,_,_name),{,{,returnTRUE,Else {,returnFALSE,},},Else {,IfFast_Get(latch_name){,returnTRUE,},Else {,while,(,( 1,=,==1,),){,ifSpin_Get(latch_name){,returnTRUE,},Else {,Register_Event(,“,“latch,:,: $latch”,),),Sleep(try,+,++),},},},},},FunctionFast_Get(latch_name),{,Iftry,_,_to,_,_get_latch(latch_name,),){,returnTRUE,},Else {,returnFALSE,},},FunctionSpin_Get(latch_name),{,fori,=,= 1to,_,_spin,_,_count,{,{,IfFast_Get(latch_name),{,returnTRUE,},},},FunctionSleep(try,),),{,sleeptime,=,=,decode,(,(try,0,,,,0,1,10,2,,,,20,,,,3,,~,~40,,,,4,,~,~80,,,,..,.,.~2000,),),sleep(sleeptime,),),},LATCH相,关,关的时,间,间开销,三个方,面,面消耗,的,的时间,:,:,获取LATCH的时,间,间(SPIN,:,:CPU时间,,,,SLEEP,等,等),持有LATCH的时,间,间(内,核,核代码,:,:cpu时间,,,,OS,调,调用,,锁,锁等待,),),LATCH释,放,放的时,间,间(内,核,核代码,:,:cpu时间,),),注意的,要,要点:,spin消耗CPU,资,资源,,因,因此提,高,高_spin,_,_count,会,会加大CPU,开,开销,spin不产,生,生等待,事,事件,sleep不,消,消耗cpu时,间,间,会,记,记录latch free,等,等待,,,调整_SPIN_COUNT,调整_SPIN_COUNT是十,分,分危险,的,的动作,Oracle9iR2,开,开始支,持,持按照CLASS分,类,类设置,_,_spin_count,找到闩,锁,锁:selectlatch,#,# fromv$latchnamewherename=,','cachebufferschains,',';,altersystemset ",_,_latch,_,_classes",=,="98:0"scope,=,=spfile;,altersystemset ",_,_latch,_,_class,_,_0",=,=1800scope=spfile,;,;,闩锁使,用,用的例,子,子,操作,闩锁等待,其他等待,CPU 时间,说明,,,,,读取(10/2512),get_latch('cache buffer chains'):spin,,,1,获得闩锁以便于查找数据,搜索 buffer chain,,,5,查找所需数据,db_file_sequential_read等待,,5,,正常的IO时间,get_latch('cache buffer lru chains'):spin,,,10,获取闩锁,get_latch('cache buffer lru chains'):sleep,10,,,获取不到,休眠,get_latch('cache buffer lru chains'):spin,,,10,继续获取,get_latch('cache buffer lru chains'):sleep,20,,,再次休眠,get_latch('cache buffer lru chains'):spin,,,5,获取到闩锁,查找可用DB BUFFER,,,3,,写入数据,,,1,,get_latch('cache buffer chains'):spin,,,2,获取闩锁以便将cache链入,,30,5,37,,如何发,现,现闩锁,等,等待,v$session,_,_wait,v$latch,v,$,$latch,_,_children,等,等视图,Statspack,报,报告/AWR,报,报告:,最,最好的,工,工具,OEMperformancemanager,dbconsole/ADDM,第三方,脚,脚本或,工,工具,LATCH分,析,析的主,要,要思路,理解LATCH的基,本,本原理,和,和算法,发现LATCH FREE,问,问题,找出存,在,在严重,冲,冲突的LATCH,找出存,在,在问题,的,的LATCH,相,相关的,内,内核对,象,象,分析为,什,什么该,闩,闩锁请,求,求那么,高,高,为,什,什么等,待,待时间,那,那么长,综合系,统,统和应,用,用情况,提,提出优,化,化建议,,一种特,殊,殊的闩,锁,锁-MUTEX,从Oracle 10.2,开,开始使,用,用Mutex,来,来实现,部,部分内,存,存的保,护,护,10.2.0,.,.2开,始,始CURSOR操作,中,中替代library cache,librarycachpin,Mutex用,来,来保护,内,内存的,访,访问,,保,保证内,存,存访问,的,的串行,性,性,和LATCH,不,不同,,一,一个Mutex只保,护,护一块,内,内存,比LATCH,开,开销更,小,小,LATCH:150,-,-200条指,令,令,MUTEX:35-40条,指,指令,对于需,要,要保护,一,一组内,存,存的情,况,况,LATCH效率,更,更高,MUTEX也,支,支持OWI,在不支,持,持CAS的平,台,台上慎,用,用MUTEXLATCH,设置_kks,_,_use_mutex_pin,比如HP-UX PA-RISC,,STATSPACK,/,/AWR报告,Statspack,/,/AWR报告,是,是最好,的,的LATCH,问,问题分,析,析工具,LatchActivityforDB,LatchSleepbreakdownfor DB,LatchMiss Sourcesfor DB,ChildLatchStatistics DB,闩锁总,体,体情况,闩锁休,眠,眠情况,分,分解,闩锁问,题,题源分,析,析,子闩锁,情,情况,共享池,相,相关的,闩,闩锁,共享池,相,相关LATCH一般,和,和共享,池,池不足,或,或者分,析,析过于,频,频繁有,关,关,如果共,享,享池命,中,中率不,高,高或者,共,共享池,使,使用率,接,接近于100,%,%使用,,,,需要,加,加大共,享,享池,共享池,碎,碎片问,题,题也会,加,加大闩,锁,锁竞争,sharedpool,library cache,library cache pin,rowcacheobjects,rowcacheenqueuelatch,,DBCACHE相,关,关闩锁,和LRU CHAINS或,者,者HASHCHAINS,相,相关,cachebufferhandles,cachebuffers chains,cachebuffers lruchain,multiblock readobjects,REDO LOG相,关,关闩锁,REDO LOG相,关,关闩锁,竞,竞争一,般,般由于,以,以下原,因,因:,LOGBUFFER太小,过于频,繁,繁的COMMIT,REDO LOG的IO性,能,能不佳,LOGSWITCH过于,频,频繁,归档出,现,现问题,或,或者归,档,档过慢,主要闩,锁,锁,Redo Copy,Redoallocation:,9.2,:,:LOG_PARALLELISM,10G,:,:_log_parallelism_max,Redo writing,redo on-diskSCN,Simulatorlru latch与BUG,BUG2452409/BUG5918642,simulatorlru latch闩锁争,用,用十分,高,高,,CPU,使,使用率,很,很高,DBCACHE较,大,大,并,且,且访问,负,负载较,大,大,影响多,个,个版本,9.2,.,.0.5,10.1.0,.,.2,10.2.0,.,.3,11.1.0,.,.6,解决方,案,案,9.2,,,,10,.,.1:STATISTICS_LEVEL=BASIC,10.2:db_cache_advice=OFF,其他闩,锁,锁,archive control,:,:和归,档,档目录,有,有关,process allocation,:,:和进,程,程状态,修,修改有,关,关,在,短,短连接,的,的系统,中,中可能,存,存在竞,争,争,session allocation,:,:和SESSION,信,信息修,改,改有关,sort extentpool:和,硬,硬盘排,序,序有关,childcursorhashtable:,和,和SQL分析,以,以及CURSORVERSION有关,enqueue hashchains和锁,的,的管理,有,有关,modifyparametersvalues,:,:动态,调,调整参,数,数有关,parallelqueryallocbuffer,,,,parallelquerystats,:,:和,并,并行查,询,询有关,GES,*,*:和,全,全局锁,有,有关,GCS,*,*:和,全,全局CACHE有关,案例分,析,析-现,象,象,CPU,使,使用率,突,突然增,加,加,系统变,得,得十分,缓,缓慢,procsmemorypagefaultscpu,rbwavmfreereatpipofrdesrinsycsussyid,1763014389672355278713000008080510506161404 56,17630143896723357121025000001060594632133819460,14010145331423436315320000001094993765137589370,14010145331423198410790000012534102372159379280,1401014533142320065540000013046105209171229370,,,案例分,析,析-TOPEVENTS,Top5TimedEvents,~~~,~,~~~,~,~~~,~,~~~,~,~~~,~,~~~,%,%Total,EventWaitsTime,(,(s)Ela Time,---,-,---,-,---,-,---,-,---,-,---,-,---,-,---,-,---,-,---,-,---,-,---,-,---,-,---,-,--,-,---,-,---,-,---,-,---,-,--,-,---,-,---,-,---,-,--,-,---,-,---,latchfree951,180467,35673,.,.70,CPUtime53,5598,.,.45,dbfile sequentialread9,592,36953,0128,.,.36,enqueue10,75129,5804,.,.66,dbfile scatteredread2,154,81918,0012,.,.84,---,-,---,-,---,-,---,-,---,-,---,-,---,-,---,-,---,-,---,-,---,-,---,-,---,-,---,-,---,-,---,-,---,-,---,-,---,-,---,-,-,平均每,次,次闩锁,等,等待时,间,间高达481,毫,毫秒,案例分,析,析:闩,锁,锁情况,,PctAvgWaitPct,GetGetSlpsTimeNoWait NoWait,LatchRequestsMiss,/,/Miss,(,(s)RequestsMiss,---,-,---,-,---,-,---,-,---,-,---,-,---,-,---,-,--,-,---,-,---,-,---,-,---,-,--,-,---,-,- -,-,---,-,--,-,---,-,---,-,--,-,---,-,---,-,---,-,- -,-,---,-,--,cachebufferhandles4,020,9300.10,.,.21750,cachebuffers chains1,,,,453,078,2270.10,.,.4,#,###,#,###58,923,,,,93915,.,.9,cachebuffers lruchain1,258,1110.60,.,.245862,163,,,,5503,.,.0,案例-,子,子闩锁,情,情况,,案例分,析,析:分,析,析结论,及,及采取,措,措施,故障原,因,因,应用对,几,几张热,表,表操作,频,频繁,DBCACHE出,现,现了热,链,链,解决方,案,案,最佳方,案,案是修,改,改应用,在应用,无,无法修,改,改的情,况,况下,,调,调整HASH,链,链,打,散,散热链,,案例分,析,析:优,化,化效果,Top5TimedEvents,~~~,~,~~~,~,~~~,~,~~~,~,~~~,~,~~~,%,%Total,EventWaitsTime,(,(s)Ela Time,---,-,---,-,---,-,---,-,---,-,---,-,---,-,---,-,---,-,---,-,---,-,---,-,---,-,---,-,--,-,---,-,---,-,---,-,---,-,--,-,---,-,---,-,---,-,--,-,---,-,---,dbfile sequentialread20,137,9881,071,84874,.,.05,bufferbusywaits2,245,704193,33913,.,.36,dbfile scatteredread2,139,401124,1828,.,.58,CPUtime44,7803,.,.09,iodone917,8075,398,.,.37,下节预,告,告:共享池,分,分析,共享池,的,的基本,原,原理,如何诊,断,断共享,池,池问题,10G,自,自动,共,共享内,存,存管理,的,的利与,弊,弊,感谢您,对,对华章,培,培训网,的,的支持!,。

      点击阅读更多内容
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.