ITPub博客

首页 > Linux操作系统 > Linux操作系统 > dbms_shared_pool.purge在11.1.0.7的bug

dbms_shared_pool.purge在11.1.0.7的bug

原创 Linux操作系统 作者:wei-xh 时间:2011-09-22 09:25:33 0 删除 编辑

select OBJECT_STATUS,address,hash_value,executions,parse_calls,IS_SHAREABLE from v$sql where sql_id='9tgj4g8y4rwy8';

OBJECT_STATUS                          ADDRESS          HASH_VALUE EXECUTIONS PARSE_CALLS IS
-------------------------------------- ---------------- ---------- ---------- ----------- --
VALID                                  00000000B37CBC98 1011610568      18995       18995 Y
VALID                                  00000000B37CBC98 1011610568        368         368 Y
VALID                                  00000000B37CBC98 1011610568      43600       43600 N
VALID                                  00000000B37CBC98 1011610568      36455       36455 N
VALID                                  00000000B37CBC98 1011610568       8319        8319 N
VALID                                  00000000B37CBC98 1011610568      30454       30454 N
VALID                                  00000000B37CBC98 1011610568         51          51 y


exec dbms_shared_pool.purge('00000000B37CBC98,1011610568','C');

select OBJECT_STATUS,address,hash_value,executions,parse_calls,IS_SHAREABLE from v$sql where sql_id='9tgj4g8y4rwy8';
VALID                                  00000000B37CBC98 1011610568      18995       18995 N
VALID                                  00000000B37CBC98 1011610568        368         368 N
VALID                                  00000000B37CBC98 1011610568      43600       43600 N
VALID                                  00000000B37CBC98 1011610568      36455       36455 N
VALID                                  00000000B37CBC98 1011610568       8319        8319 N
VALID                                  00000000B37CBC98 1011610568      30454       30454 N
VALID                                  00000000B37CBC98 1011610568         51          51 N

Bug 11829677

11.1.0.7升到11.1.0.7.8后貌似这个貌似这个问题解决了,但是并没发现7.8这个版本里有这个bugfix,奇怪。。MOS上也没说7.8这个版本解决了这个BUG

select OBJECT_STATUS,address,hash_value,executions,parse_calls,IS_SHAREABLE from v$sql where sql_id='9gkq7rruycsjp';

OBJECT_STATUS                          ADDRESS          HASH_VALUE EXECUTIONS PARSE_CALLS IS
-------------------------------------- ---------------- ---------- ---------- ----------- --
VALID                                  00000005BFED2DA8 4125516341          1           1 Y
VALID                                  00000005BFED2DA8 4125516341         97          97 Y
VALID                                  00000005BFED2DA8 4125516341        115         115 Y


exec dbms_shared_pool.purge('00000005BFED2DA8,4125516341','C');

select OBJECT_STATUS,address,hash_value,executions,parse_calls,IS_SHAREABLE from v$sql where sql_id='9gkq7rruycsjp';

no rows selected


opatch  lsinventory -bugs_fixed | grep 11829677,查询为空

Affects:

Product (Component) Oracle Server (Rdbms)
Range of versions believed to be affected Versions BELOW 12.1
Versions confirmed as being affected
Platforms affected Generic (all / most platforms affected)

Fixed:

This issue is fixed in

Symptoms:

Related To:

Description

Cursors that had V$SQL.IS_SHAREABLE set to 'N' could not be purged from the
shared pool. This has been corrected.
这个特性在10.2.0.4就有了,但是10.2.0.4要靠一个事件去激活,否则也会不起作用。

10.2.0.4:

SQL> create table test(id int);

表已创建。

SQL> select * from test;

未选定行

SQL> select address,hash_value,executions,parse_calls from v$sql where sql_TEXT like 'select * from test%';

ADDRESS HASH_VALUE EXECUTIONS PARSE_CALLS

---------------- ---------- ---------- -----------
0000040229F039E0 1689401402 1 1


QL> exec dbms_shared_pool.purge('0000040229F039E0,1689401402','C');

PL/SQL 过程已成功完成。

SQL> select address,hash_value,executions,parse_calls from v$sql where sql_TEXT like 'select * from test%';

ADDRESS HASH_VALUE EXECUTIONS PARSE_CALLS
---------------- ---------- ---------- -----------
0000040229F039E0 1689401402 1 1

 

 

SQL> alter session set events '5614566 trace name context forever';

会话已更改。

SQL> exec dbms_shared_pool.purge('0000040229F039E0,1689401402','C');

PL/SQL 过程已成功完成。

SQL> select address,hash_value,executions,parse_calls from v$sql where sql_TEXT like 'select * from test%';

未选定行

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/22034023/viewspace-708063/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
Oracle ACE组成员,DBGeeK用户组发起人。曾在DTCC、ORACLE技术嘉年华、Gdevops等公开场合做过数据库技术专题分享,2017年应Oracle邀请在世界最大的数据库会议OOW上做技术分享。组织翻译了《拨云见日,解密Oracle ASM内核》一书。

注册时间:2009-07-04

  • 博文量
    422
  • 访问量
    2425381