shared pool 4031 分析

1.编译Java代码时出现的ORA4031如果编译Java代码时内存溢出,会看到一个错误:编译时出现asqlexceptionoccured::ORA 04031:UnableToLocalbyteSOFsharedmemory(/123 。
应该优先考虑1、Oracle设置系统参数进行性能优化 SGA共享poolTunning共享pool的优化,因为一个cachemiss在shared pool中的开销比在databuffer中的高,因为字典数据在内存中的存储时间一般比在librarycache中的长,所以关键是对librarycache的优化 。获取(分析)在命名空间中查找对象的次数 。Pins(执行)读取或执行名称空间中的对象 。重新加载(重新解析)的次数执行阶段的库缓存未命中次数导致需要重新解析sql 。)检查v$librarycache中sqlarea的gethitratio是否超过% 。如果不超过%,检查应用程序代码以提高应用程序代码的效率 。select gethitrationfromv$librarycachenamespacesql area;)v$librarycache中的重载/引脚比率应该小于% 。如果大于% , 则应添加参数shared_po 。
2、Oracle内存结构研究-SGA篇 1 。概述在《Oracle内存结构的PGA研究》一文中提到,PGA是服务器进程专用的私有内存区域,而SGA是共享内存区域 。SGA由几部分组成:1 .固定SGA(固定加)2 。块缓冲区(Dbcache)3 。Redologbuffer)4 。Java池(Java pool)5 。大池(大pool)6 。流池(Stream pool)具有以下参数来控制共享池的相关组件的大小:1 .控制JAVA池的大小 。
3、LARGE_POOL_SIZE:控制大池的大小 。4、DB_*K_CACHE_SIZE:控制不同块大小的缓冲区大小 。5、LOG_BUFFER:控制重做日志缓冲区的大小 。6.SGA目标:10g以上用于控制自动SGA内存管理的总内存大小 。7.SGA最大大小:控制SGA可以达到的最大大小 , 如果发生变化,重新启动数据库 。
3、Oracle笔记-优化策略与工具【shared pool 4031 分析】章节优化策略和工具识别我的方法绑定变量和分析(再次)不使用绑定变量,句子分析除了消耗CPU时间 , 还会在字典缓存上增加latch来显示等待会话的事件V$SESSION_EVENT 。具体事件名称及含义请参考OracleReferenceManual中的附录OracleWaiteventCursor _ Sharing cursor _ Sharing参数 。默认情况下,它是精确的,如果指定为FORCE,它就是优化器 。可以将一个语句中的所有常量转换成绑定变量 , 虽然语句分析但是,也会带来以下副作用:优化器可用的信息可能会减少,从而改变执行路径 。例如,当条件更改为绑定变量时,优化器不会发现这一点 。虽然返回数据的长度保持不变,但列的长度可能会改变 。比如SELECTidtomnamefromempname应该是VARCHAR() , 但是因为tom , 如果改成绑定变量,name的显示长度可能会变成查询计划,比较难评估 。因为语句的变化,EXPLAINPLAN看到的查询可能和数据库看到的不一致,这就让AUTOTRACE等人输了 。
4、如何设置使oracle10g性能最优性能调优步骤

    推荐阅读