您的位置:首页 > 数据库 > Oracle

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

2010-06-30 11:08 375 查看
什么时候 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中的记录。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: