一、安装dbms_shared_pool包
connect SYS AS SYSDBA
@?/rdbms/admin/dbmspool.sql
@?/rdbms/admin/prvtpool.plb
二、查找内存大于**K的对象
set serveroutput on size 5000
exec dbms_shared_pool.size(500);
三、把对象PIN到共享池
exec dbms_shared_pool.keep('owner.object',flag);
Value Kind of Object to keep
-- ----- ----------------------
-- P package/procedure/function
-- Q sequence
-- R trigger
-- T type
-- JS java source
-- JC java class
-- JR java resource
-- JD java shared data
-- C cursor
四、把对象移出共享池
exec dbms_shared_pool.unkeep('owner.object');
五、查找哪些对象PIN在共享池中
select * from v$db_object_cache where kept='YES';