清理共享池游标

1600阅读 0评论2019-09-03 brjl
分类:Oracle

标题或者叫清理SQL、执行计划

主要是用dbms_shared_pool这个包

测试

create table test333 as select * from tab where rownum<4;

select * from test333;

 

查看语句执行情况:

col sql_text for a60

set lin 200 pages 100

col SQL_ID for a15

select sql_text,sql_id,address,hash_value,executions,loads,parse_calls,invalidations from v$sqlarea v

 where sql_text like '%test333%' and sql_text not like '%sqlarea%';

 

清理掉,用addresshash_value

exec sys.dbms_shared_pool.purge('00000000C0DE77E8,485215222','C')

 

oracle 10g上还需要设置以下事件才起作用

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

 

实在不行就把共享池全部清理(不推荐)

alter system flush shared_pool;

 

对象授权(回收)、DDL、删除不会清除shared pool中相关内容,但是INVALIDATIONS可能会变。

上一篇:spool 不显示sql
下一篇:看执行计划,多游标诊断及清理