4.使对象的相关定义,执行计划或执行代码驻留到shared_pool(library cache)里(表是驻留到数据字典里面的),不受LRU算法的限制,不会被清除
主要是看这个字段kept为也是则不受LRU算法的限制
SQL> exec dbms_shared_pool.keep('SCOTT.P1');
SQL> select OWNER,NAME,KEPT from v$db_object_cache where owner='SCOTT';
OWNER NAME KEPT
------------------------------ ------------------------------ --------------------
SCOTT DBMS_APPLICATION_INFO NO
SCOTT P1 YES
SCOTT DBMS_SHARED_POOL NO
SCOTT DUAL NO
SCOTT SCOTT NO
执行清空shared_pool的操作
alter system flush shared_pool;
SQL> select OWNER,NAME,KEPT from v$db_object_cache where owner='SCOTT';
OWNER NAME KEPT
------------------------------ ------------------------------ --------------------
SCOTT P1 YES
SCOTT SCOTT NO
取消驻留,重新受LRU算法的管理
SQL> exec dbms_shared_pool.unkeep('SCOTT.P1');
PL/SQL procedure successfully completed.
清空一下shared_pool
SQL> alter system flush shared_pool;
System altered.
SQL> select OWNER,NAME,KEPT from v$db_object_cache where owner='SCOTT';
OWNER NAME KEPT
------------------------------ ------------------------------ --------------------
SCOTT SCOTT NO