网站首页 > 技术文章 正文
如果数据库版本为Oracle 10.2.0.4以前,那么只能清空整个Shared Pool,命令为:“ALTER SYSTEM FLUSH SHARED_POOL;”
而从Oracle 10.2.0.4开始提供了一个包DBMS_SHARED_POOL,该包可以实现清除Shared Pool中某条SQL语句的功能。若该包没有安装,则可以通过$ORACLE_HOME/rdbms/admin/dbmspool.sql进行安装。
使用这种方法可以精确的将一个SQL从共享池中删除,从而使得Oracle为这个SQL重新生成执行计划。这种方法只针对单个SQL语句,使得解决问题的同时不会造成任何的误伤。
举例说明:
SELECT ADDRESS,HASH_VALUE FROM V$SQLAREA WHERE ROWNUM<=1;
ADDRESS HASH_VALUE
---------------- ----------
0000000092D263D0 3231842444
EXEC DBMS_SHARED_POOL.PURGE('0000000092D263D0,3231842444','C');--这里的C表示游标(Cursor)
PL/SQL procedure successfully completed.
SELECT ADDRESS,HASH_VALUE,SQL_TEXT FROM V$SQLAREA WHERE ADDRESS='0000000092D263D0' AND HASH_VALUE='3231842444';
no rows selected
猜你喜欢
- 2025-07-23 数据库DELETE 语句,还保存原有的磁盘空间
- 2025-07-23 【Oracle】Berkeley DB避“坑”(berkeley官网)
- 2025-07-23 为什么很多人不愿意用hibernate了?
- 2025-07-23 Oracle数据恢复—格式化分区导致Oracle数据库数据丢失的数据恢复
- 2024-10-25 【Oracle】Package 存储过程编写以及其他实用技术
- 2024-10-25 Oracle数据库故障处理--删除联机日志成员无法打开数据库
- 2024-10-25 数据库笔试面试138——在Oracle中,如何dump数据库内部结构?
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- 前端设计模式 (75)
- 前端性能优化 (51)
- 前端模板 (66)
- 前端跨域 (52)
- 前端缓存 (63)
- 前端aes加密 (58)
- 前端脚手架 (56)
- 前端md5加密 (54)
- 前端路由 (61)
- 前端数组 (73)
- 前端js面试题 (50)
- 前端定时器 (59)
- Oracle RAC (76)
- oracle恢复 (77)
- oracle 删除表 (52)
- oracle 用户名 (80)
- oracle 工具 (55)
- oracle 内存 (55)
- oracle 导出表 (62)
- oracle约束 (54)
- oracle 中文 (51)
- oracle链接 (54)
- oracle的函数 (58)
- oracle面试 (55)
- 前端调试 (52)
本文暂时没有评论,来添加一个吧(●'◡'●)