Library cache中相关的latch包括:shared pool latch,
library cahce latch,
library cache lock latch,
library cache pin latch。
Share pool latch的主要作用是分配或释放空间时使用,从Oracle9i开始,sharedpool被分成了很多个subpool,
由多个shared pool latch保护,Oracle开始支持更大的shared pool。
Library cache latch的主要作用是在hash bucket中定位handle时使用,
library cache lock latch和library cache pin latch分别是获取lock和pin时,需要取得的latch。
shared pool大小不合理,大量的硬解析以及SQL版本过多都可能导致shared pool latch和library cache latch的争用。
从Oracle10g开始,Oracle正在逐步用mutex取代library cache中的latch,
cursor:pin S和cursor:pin X相当于share和exclusive类型的library cache pin,
cursor:pin S wait on X则表示share方式正在等待exclusive锁定。
/********与library cache相关的等待事件**********/
SQL> select * from v$event_name where name like '%library cache%';
EVENT# EVENT_ID NAME PARAMETER1 PARAMETER2 PARAMETER3 WAIT_CLASS_ID WAIT_CLASS
---------- ---------- ------------------------------ ------------------------------ -------------------- -------------------- ------------- --------------------
280 2802704141 library cache pin handle address pin address 100*mode+namespace 3875070507 Concurrency
281 916468430 library cache lock handle address lock address 100*mode+namespace 3875070507 Concurrency
282 2952162927 library cache load lock object address lock address 100*mask+namespace 3875070507 Concurrency
283 1646780882 library cache: mutex X idn value where 3875070507 Concurrency
284 2446268751 library cache: mutex S idn value where 3875070507 Concurrency
815 800384622 library cache revalidation 1893977003 Other
816 1578286316 library cache shutdown 1893977003 Other
7 rows selected
可知基本与并发访问有关
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/9240380/viewspace-759138/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/9240380/viewspace-759138/