yuanqiao 发表于 2015-6-17 09:53:16

dbms_shared_pool过程锁定内存#ocp试验#

  参考:http://www.iyunv.com/zlja/archive/2011/06/24/2449313.html
  1,包dbms_shared_pool的数据字典,通过它来执行过程锁定内存

  2,v$db_object_cache 来查询那个过程锁定




SYS@sen>select owner,name,type fromv$db_object_cache whereSHARABLE_MEM>10000AND (TYPE='PACKAGE'
OR TYPE='PACKAGE BODY' OR TYPE='FUNCTION' OR TYPE='PROCEDURE')   AND kept='NO';

  3,在scott用户下新建一个procedure



create or replace procedure p1 as begin null; end;

  
  DBA_objects查看,注意这里scott需要大写



SYS@sen>select owner, object_type,OBJECT_NAME from DBA_objects where object_type='PROCEDURE' and owner='SCOTT';

  查看scott下面的所有存储过程


  4,将这个过程锁在内存



SYS@sen>exec dbms_shared_pool.keep('SCOTT.p1','P')

  

  查看



SYS@sen>select owner,name,type fromv$db_object_cache where owner='SCOTT' AND kept='YES';

  

  解锁



SYS@sen>exec dbms_shared_pool.unkeep('SCOTT.p1','P')

  试验中的系统触发器需要grant
  grantexecute on dbms_shared_pool to HR;
  下面是将scott下面的emp表的select等权限给用户HR



SCOTT@DB112>grant select,insert,update,delete on emp to hr;

  
页: [1]
查看完整版本: dbms_shared_pool过程锁定内存#ocp试验#