【ASM_ORACLE】Library Cache优化篇(二)Library cache load lock的概念和解决办法

来源:这里教程网 时间:2026-03-03 18:38:34 作者:

一、Library cache load lock的概念Session 尝试去查找数据对象上的 load lock,以便能加载这个对象。 Load lock 一定是以排它模式获得,以便没有其它进程可以加载同一个对象。如果无法获得 load lock,那么 session 将等待这个事件,直到其变为可用状态。等待时间:3秒(PMON 会等待1秒) 参数:1. object address:对象的地址2. lock address:锁的地址  二、减少Library cac he load lock的办法如果一个对象不在内存中,那么我们不能对其申请 library cache lock。因此,需要将这个对象加载到内存中。然后,session 尝试找到数据库对象的 load lock,以便它能载入这个对象。为了阻止多进程同时请求加载同一个对象,其它同样请求的 session 将等待 library cache load lock 因为这个对象正在被加载到内存中。 等待 library cache load lock 是由于对象在内存中是不存在的。Library cache 中的对象不存在,是由于 shared pool 过小引起的频繁重新装载,或太多的硬解析缘于不共享的 SQL。  避免这种等待的通常 建议:1.增加 shared pool(避免 reload).2.增加 session cached cursors(避免 cursor 被刷出 shared pool)3.设置 cursor_sharing 为 force(减少硬解析)  --可能改变执行计划与查询的性能,所以要做充分的测试

相关推荐