将指定SQL从pool中清除

 

存储过程DBMS_SHARED_POOL.PURGE说明


Oracle 11g在DBMS_SHARED_POOL包中引入了一个名为PURGE的新存储过程,可将如下类型的具体对象从pool中清除掉

  • 游标
  • 序列
  • 触发器

 

参数说明


DBMS_SHARED_POOL.PURGE (name    VARCHAR2,  flag    CHAR DEFAULT 'P',  heaps   NUMBER DEFAULT 1); 
 
Argument Name                  Type                    In/Out Default?
 ------------------------------ ----------------------- ------ --------
 NAME                           VARCHAR2                IN
 FLAG                           CHAR                    IN     DEFAULT
 HEAPS                          NUMBER                  IN     DEFAULT

  • 参数flag

       c : cursor

       p/P :package/procedure/function.

       t/T :type

       r/R :trigger

       q/Q  : sequence

 

  • name

       若要清除的对象类型为cursor,则通过如下方法

  1.  确定要清除的SQL,并找出对应的SQL_ID
  2. 用SQL_ID从v$sqlarea中查出address和hash_value 
  3. SELECT a."ADDRESS",a."HASH_VALUE",a."SQL_FULLTEXT" FROM v$sqlarea a WHERE a.sql_id = 'd06r9341vzuah';
  4. 将address,hash_value组合成参数name
  5. 执行过程exec dbms_shared_pool.purge('0000000B3A6551F8,62908752','C'); 
  •  

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值