看了《深入浅出》对sharepool和library cache有了初步了解,用个形象的比喻,不知道是否正确。
假如要做一桌好菜:
先把原材料(buffer cache)搬进厨房(share pool),原材料进行分类由(bucket)进行管理;使用那种原材料做什么样的菜,由每个bucket向(share pool latch )申请;得到share pool latch的批准,开始做菜.lock类似厨房的橱灶,确定在哪个锅里做饭.而pin是指定有哪个人或者几个人去做饭.如果设置为exclusive,意味这作饭的只能指定一个人做.如果是shared模式,意味指定一个人在做的时候,还可以找帮手来帮着往锅了放菜.
总结一下:
1.其实share pool latch 是管理内存资源;lock是锁对象的,lock是比pin更高级一点的锁,pin 是lock锁着对象后,如何处理(是共享(share),独享(exclusive),还是什么都不做(null)).
2.latch是在sharepool中运行,而lock和pin仅在在library chache中进行.