【体系结构问题解决,1】解决4031错误方法
来源:互联网 发布:ubuntu 设置工作路径 编辑:程序博客网 时间:2024/05/29 08:06
三.解决4031错误方法:
(ora-4031错误产生原因:大量的硬解析后,导致链上的chunk都变的非常小,此时来了一个大的sql会找不到合适的chunk,就会报ora-4031错误。)
如果SHARED_POOL_SIZE 设置得足够大,又可以排除 Bug 的因素,那么大多数的ORA- 04031 错误都是由共享池中的大量的SQL 代码等导致过多内存碎片引起的。
1.执行alter system flush shared_pool; 清理library cache 和rows cache ,此方法只能临时解决问题不推荐使用。
原因:
(1 )Flush Shared Pool 会导致当前未使用的cursor 被清除出共享池,如果这些 SQL 随后需
要执行,那么数据库将经历大量的硬解析,系统将会经历严重的CPU 争用,数据库将会产生
激烈的L atch 竞争。
(2 )如果应用没有使用绑定变量,大量类似SQL 不停执行,那么Flush Shared Pool 可能
只能带来短暂的改善,数据库很快就会回到原来的状态。
(3 )如果Shared Poo l 很大,并且系统非常繁忙,刷新Shared Pool可能会导致系统挂起,
对于类似系统尽量在系统空闲时进行。
2.方法二: 让开发人员修改sql语句,实现共享SQL,
3.方法三:将较大的对象保存到内存中,
4.方法四:设置合适的shared_pool_reserved_size参数,结合shared_pool_reserved_min_alloc 参数可以用
来避免由此导致的性能下降。这个参数的缺省值是shared_pool_size 的5%,通常这个参数的建议值为shared_pool_size参数的10% ~20% 大小,最大不得超过shared_pool_size的50% 。
保留区是在shared_pool中专门用来缓存大对象区域,所以可以增加保留区的大小。
#查看请求保留区的错误次数,(若过请求保留区错误,就会包4031错误)
select REQUEST_MISSES from v$shared_pool_reserved;
6.使用AMM自动内存管理来分配共享池,防止共享池设置小而出错。(一般做到这一步就可以了)
0 0
- 【体系结构问题解决,1】解决4031错误方法
- Apktool反编译错误问题解决方法
- snmp++编译错误问题解决方法
- E/JavaBinder:FAILED BINDER TRANSACTION错误解决+RadioGroup调用check方法的时候,onCheckedChanged被调用多次的问题解决
- busybox1.9编译错误问题解决方法
- CxGrid表格中文排序错误问题解决方法
- hibernate 报 Unknown entity错误,问题解决方法
- recordcount-1问题解决方法
- 问题解决方法1
- 【问题解决】解决Yum安装中出现的mirrorlist.txt错误
- 实战解决IIS服务器的“HTTP 500 内部服务器错误”,装了Visual Studio 2005之后重装IIS的问题解决方法
- 电脑重新开机日期时间错误不对问题解决方法
- Excel---八种常见Excel错误提示及问题解决方法
- Delphi COM+中调用webservice错误提示问题解决方法
- VS中出现 inline”之后应输入“(”错误问题解决方法
- 安装apk时出现错误Failure [INSTALL_FAILED_DEXOPT]问题解决的方法
- 安装apk时出现错误Failure [INSTALL_FAILED_DEXOPT]问题解决的方法
- emulatorx86.exe已停止工作 模拟器启动错误 问题解决方法
- 【docker】docker run命令详解
- try catch finally 特殊异常 重点
- 懒汉式设计模式
- matlab的Deep Learning的toolbox 中的SAE算法
- deep learning 之学习路线
- 【体系结构问题解决,1】解决4031错误方法
- 黑马程序员——Java集合框架—List
- 算法学习之排序算法:选择排序
- Leetcode: Search for a Range
- 快速排序
- hdu_2795,线段树,单点更新
- 抓住灵感的方法——Leo鉴书73
- 数列有序
- 社会力模型之墙力分析