oralce sql 缓存查询及删除
2024-10-20 08:33:58
--缓存查询语句 V$SQLAREA 视图记录sql 执行情况(加载次数/用时/Id....)
常用字段
ADDRESS:SQL语句在SGA中的地址。
这两列被用于鉴别SQL语句,有时,两条不同的语句可能hash值相同。这时候,必须连同ADDRESS一同使用来确认SQL语句。
PARSING_USER_ID:为语句解析第一条CURSOR的用户
VERSION_COUNT:语句cursor的数量
KEPT_VERSIONS:
SHARABLE_MEMORY:cursor使用的共享内存总数
PERSISTENT_MEMORY:cursor使用的常驻内存总数
RUNTIME_MEMORY:cursor使用的运行时内存总数。
SQL_TEXT:SQL语句的文本(最大只能保存该语句的前1000个字符)。
MODULE,ACTION:使用了DBMS_APPLICATION_INFO时session解析第一条cursor时的信息
SQL_FULLTEXT :完整的sql语句
SELECT ADDRESS,HASH_VALUE,SQL_FULLTEXT FROM V$SQLAREA
查看某条sql 缓存记录 eg:
SELECT ADDRESS,HASH_VALUE,SQL_FULLTEXT,ELAPSED_TIME FROM V$SQLAREA WHERE sql_fulltext like '%from template_data_temp t%';
--清除某条记录
参数1:ADDRESS
参数2:HASH_VALUE
参数3:c
第三个参数'C'表示PURGE的对象是CURSOR(游标),不过实际上这里可以使用除了P(PROCEDURE/FUNCTION/PACKAGE)、T(TYPE)、R(TRIGGER)和Q(SEQUENCE)的任何值。
使用这种方法,就可以精确的将一个SQL从共享池中删除,从而使得Oracle为这个SQL重新生成执行计划。这种方法只针对单个SQL语句,使得解决问题的同时不会造成任何的误伤。
exec sys.dbms_shared_pool.purge('0000000061B5EAD0,772411230','c');
--清空所有计划缓存 生产环境服务器负载较大时 慎用 同时删除清空所有缓存可能造成服务器压力过大
ALTER SYSTEM FLUSH SHARED_POOL
最新文章
- SSH整合,必出精品
- jQuery与其他JS库共存
- 为什么没有MMU的处理器无法安装操作系统?
- Java version 32转64位
- http安全篇
- Grunt 之 使用 JavaScript 语法检查工具 jshint
- python 模拟浏览器
- AMQP(Advanced Message Queuing Protocol)
- Thymeleaf 3与Spring MVC 4 整合配置
- 深入理解 JavaScript 异步系列(3)—— ES6 中的 Promise
- 【Java学习笔记之七】java函数的语法规则总结
- BZOJ 1815: [Shoi2006]color 有色图 [Polya DFS 重复合并]
- [20181220]使用提示OR_EXPAND优化.txt
- 软件项目管理:什么是baseline
- URL优化的几个处理方法
- C#编程(四十八)----------列表
- live555 编译
- eclipse的.properties文件中文显示问题
- 使用MDScratchImageView实现刮奖效果
- SourceTree使用