mutex是一把钥匙,一个人拿了就可以进入一个房间,出来的时候把钥匙交给队列的第一个人。
mutex主要使用在library cache中,用来取代原来的library cache pin 和library cache lock
latch是oracle用来在内存中做串行控制的机构,从10gr2开始,oracle引入了一个新的技术mutex 利用它实现串行控制的功能,并替换部分latch
mutex中有2个变量:holider identifer 和reference count
holider identifer 记录持有mutex的sid
reference count是一个计数,记录了当前正在以share方式访问mutex的数量,每当session以share方式持有mutex时,计数会加1,而释放时会减1
如果reference count大于零,表示该内存结构正在被oracle pin住
holider identifer 记录持有mutex的sid
reference count是一个计数,记录了当前正在以share方式访问mutex的数量,每当session以share方式持有mutex时,计数会加1,而释放时会减1
如果reference count大于零,表示该内存结构正在被oracle pin住
mutex相比latch带来以下的好处:
1.更少的资源消耗。暂存的空间比latch小很
2.有效降低竞争
3.更快的pin
mutex申请的过程和latch类似,同样需要spin和sleep,不同的是oracle硬编码了mutex spin的次数为255次(latch spin的次数默认为2000,由隐含参数_spin_count控制)
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/607244/viewspace-750723/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/607244/viewspace-750723/