Chinaunix首页 | 论坛 | 博客
  • 博客访问: 6543893
  • 博文数量: 1005
  • 博客积分: 8199
  • 博客等级: 中将
  • 技术积分: 13071
  • 用 户 组: 普通用户
  • 注册时间: 2010-05-25 20:19
个人简介

脚踏实地、勇往直前!

文章分类

全部博文(1005)

文章存档

2020年(2)

2019年(93)

2018年(208)

2017年(81)

2016年(49)

2015年(50)

2014年(170)

2013年(52)

2012年(177)

2011年(93)

2010年(30)

分类: Oracle

2011-05-12 16:12:55

 
通常情况下,将SQL的执行计划从SGA中清除有一下三种方法:
1.清空共享池
这种方法风险比较大,因为这样的话会将整个共享池都清空了.
alter system flush shared_pool;
 
2.在对表进行DDL(授权)
任何对表做了DDL,相应的执行计划马上失效,最简单有效的办法就是对表进行授权.
 
3.使用DBMS_SHARED_POOL.PURGE清空具体某个SQL_ID,这个功能是在10g以上的版本才有的.

SQL> select ADDRESS, HASH_VALUE from V$SQLAREA where SQL_ID like '7yc%';
ADDRESS HASH_VALUE
--------------------------------------------------------------------------
000000085FD77CF0 808321886
SQL> exec DBMS_SHARED_POOL.PURGE ('000000085FD77CF0, 808321886', 'C');
PL/SQL procedure successfully completed.
SQL> select ADDRESS, HASH_VALUE from V$SQLAREA where SQL_ID like '7yc%';
no rows selected
 
--The End--
阅读(3748) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~