oracle 清除相关对象的执行计划

什么时候 shared pool 里面的 shared sql area 被 清除flush ?

几种情况:
1. 相关表 ,cluster , index 等,跟对象相关的, 执行过analyze 语句后,oracle会清除原来的缓存。
2. 相关对象被修改过,那么这个sql area 就变成无效状态,下一次读的时候会重新解析reparse
3. 数据库global database name 被修改过
4.执行alter system  flush shared_pool 的时候。

就是这几种情况下, 执行计划(还有其他的信息) 都会被刷新。


上面这几种情况参考 oracle concept 第8章。

 

根据上面的几种情况,我们可以选择ANALYZE相关对象,修改相关对象来清除相关对象的执行计划。

 

另外10G以后的数据库可以通过dbms_shared_pool.purge('address,hash','C',1)清除指定的游标对象,1是清除V$SQLAREA和V$SQL中的记录。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值