永发信息网

oracle library cache 什么作用

答案:2  悬赏:40  手机版
解决时间 2021-11-30 05:15
oracle library cache 什么作用
最佳答案
Library Cache是Oracle SGA 中Shared pool 的组成部分。
作用如下:
1. Library cache中的并发控制:
Oracle利用Library cache lock和Library cache pin来实现并发控制,Library cache lock是在handle上获取的,而Library cache pin则是在data heap上获取。访问对象时,首先必须获取handle上的lock,然后将访问的数据pin在内存中。lock的作用是控制进程间的并发访问,而pin的作用是保证数据一致性,防止数据在访问时被交换出去。
lock和pin的实现类似于enqueue,在每个handle上都有lock和pin的holder list和waiter list,用来保存持有该资源和等待该资源的队列。

2. 阻塞分析:
现实情况中,我们有一个数据库中存在被应用大量频繁访问的procedure,当依赖的表发生变更时,导致该procedure失效,这时会出现大量的library cache lock和library cache pin的等待,堵塞应用访问,造成了重大故障。出现这个问题的原因是:当procedure失效后,所有访问该对象的进程都尝试去编译,大量进程尝试获取exclusive类型的lock和pin,出现了大量的等待。后续的Oracle版本作出了改进,当出现这种情况时,只允许第一个进程尝试去编译该对象,编译通过后,所有的进程就可以并发访问,避免了大量进程同时尝试编译的情况出现。
全部回答
您好,我来为您解答:
  Shared Pool Latch和Library Cache Latch竞争,这两个Latch是Shared Pool管理中最重要也是最常见的Latch竞争。Shared Pool Latch用于共享池中内存空间的分配和回收,如果SQL没有充分共享,反复解析,那么将会不断请求Shared Pool Latch在共享池中分配空间,由此可能造成非常严重的CPU消耗。
  而Library Cache Latch用于保护Cache在内存中的SQL以及执行计划等,当需要向Library Cache中增加新的SQL时,Library Cache Latch必须被获得。在解析SQL过程中,Oracle需要搜索library Cache查找匹配的SQL,如果没有可共享的SQL代码,Oracle将全新解析SQL,获得Library Cache Latch向Library Cache中插入新的SQL代码。转载,仅供参考。
  如果我的回答没能帮助您,请继续追问。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
我是腰坚盘突出能治吗?
为什么fatego里C狐是蓝卡队核心
佛学(教)中无见顶相是什么意思
就真美什么人玩桌游吗 2-5人 求推荐
明天下午要给某个小区某个单元进行维修需要通
青海省西宁市人吃的水是哪里的水,是不是循环
松鼠阅读短文做题
一个长方形的纸,只能剪一刀,剩下3个直角,
诺艺尔琴行地址在什么地方,我要处理点事!
台湾什么东西比较贵
假如生命明天终止,你今天还会创业吗
如何区分空调淡旺季?
k315次列车怎么看是不是靠窗啊
大陆气团经过冰冻的湖面会给周围带来什么样的
我打算做生意!求了一个震为雷卦!今天算的!
推荐资讯
单选题第一次世界大战后,资本主义处于相对稳
十岁以上的老狗狗吃那个品牌的天然狗粮好?
此女自拍,胸前有纹身,要全集
我有个6.35V的电池要想充电用6V充电器可以吗
72800升等于多少立方分米
大家帮个忙 谢谢
怎样不在意别人的说法
用触爱cici能喝酒吗
LED照明灯饰的艺术化
此木为柴山山出,因火成烟夕夕多有什么含义
想考察一个有发展的城市,需要了解哪些
ZALO牌的震动棒怎么用?
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?