oracle013
有五种解决4031错误,那么他们分别是什么原理呢?
1. alter system flush shared_pool//清除shared_pool.治标不治本的方式
2. 共享SQL:
-
-
- 通过查询哪些语句没有共享SQL来告诉开发人员共享SQL
- 假如开发人员做不到共享SQL,那么就改curse_sharing,在没有实现sql共享的情况有两个:
- 没有绑定变量
- 在sql语句中存在空格、大小写、换行的情况
- 对于上面两种情况,设置cursing_share为force那么第一种情况,系统会强制绑定变量来实现sql共享,而第二种无效
-
SQL> show parameter cursor;
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
cursor_sharing string EXACT
cursor_space_for_time boolean FALSE
open_cursors integer 300
session_cached_cursors integer 50
SQL> alter system set cursor_sharing='force';
System altered.
SQL> show parameter cursor;
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
cursor_sharing string force
cursor_space_for_time boolean FALSE
open_cursors integer 300
session_cached_cursors integer 50
SQL> |
3. 通过上面的方式:4031的错误产生两种情况:
-
-
- 由于大量的硬解析,让free中产生了大量的free trunk;而当来了一个比较大的SQL找不到适合的trunk就会有4031错误
- 在程序运行一段时间,free空间自然会减少,而突然来了一个非常大的SQL这样也会出现这种4031错误,
通过第三种方式就是解决2的情况:
-
-
-
- 通过dbms_shared_pool.keep('对象名')将SQL强行缓存到lib cache中,这样做sql永远都不会被置换出来。原理图:
4,增加shared_pool空间
SQL> alter system set shared_pool_size=100;
System altered.
SQL> select COMPONENT,CURRENT_SIZE FROM V$SGA_DYNAMIC_COMPONENTS;
COMPONENT CURRENT_SIZE
---------------------------------------------------------------- ------------
shared pool 155189248
large pool 4194304 |
SQL> alter system set shared_pool_size=200000000;
System altered.
SQL> select COMPONENT,CURRENT_SIZE FROM V$SGA_DYNAMIC_COMPONENTS;
COMPONENT CURRENT_SIZE
---------------------------------------------------------------- ------------
shared pool201326592
large pool 4194304
|
通过对比你会发现当设置的值比原有的值要小,那么这种设置将不能生效, |
5. 保留区
SQL> show parameter shared_pool;
NAME TYPE
------------------------------------ --------------------------------
VALUE
------------------------------
shared_pool_reserved_size big integer
7759462
shared_pool_size big integer
4M
SQL> select REQUEST_MISSES FROM V$shared_pool_reserved;
REQUEST_MISSES//假如值大于0 说明肯定有4031错误。
--------------
0
SQL>
分享到:
相关推荐
ora04031 oracle的错误解决方法
解决http500错误解决http500错误解决http500错误解决http500错误解决http500错误
chatgpt~bingAI帮我解决flask错误chatgpt~bingAI帮我解决flask错误chatgpt~bingAI帮我解决flask错误chatgpt~bingAI帮我解决flask错误chatgpt~bingAI帮我解决flask错误chatgpt~bingAI帮我解决flask错误chatgpt~bingAI...
Windows764位操作系统安装驱动错误代码52的解决办法.pdfWindows764位操作系统安装驱动错误代码52的解决办法.pdfWindows764位操作系统安装驱动错误代码52的解决办法.pdfWindows764位操作系统安装驱动错误代码52的解决...
GIN 27错误解决程序GIN 27错误解决程序GIN 27错误解决程序GIN 27错误解决程序GIN 27错误解决程序GIN 27错误解决程序GIN 27错误解决程序GIN 27错误解决程序GIN 27错误解决程序GIN 27错误解决程序GIN 27错误解决程序...
移植qt应用程序时 会出现段错误 主要介绍怎么解决该错误
mapgis67补丁_解决cannot错误
得力M2500系列定影错误解决方法 包内绝无任何垃圾流氓软件广告内容等,放心下载使用,仅分享资料暂不提供任何技术支持,请知悉; 得力M2500定影器错误 121C1216 1217解锁清零 下载后如遇问题请仔细阅读包内文档及...
WIN10安装OFFICE 2016失败提示错误代码30088-1028(0)解决方法.docxWIN10安装OFFICE 2016失败提示错误代码30088-1028(0)解决方法.docxWIN10安装OFFICE 2016失败提示错误代码30088-1028(0)解决方法.docxWIN10安装...
cad解决1606错误 window7 cad2007
佳能错误代码表 大家对照解决 (原创申请顶置方便大家) 5100错误 墨车超时错误 其实就是墨车卡了 6000错误 进纸部件错误 5C00错误 废墨清除部件出错 5700错误 供纸部件出错中国喷墨论坛-喷墨技术应用-数码影像-...
Win10系统使用商店下载应用提示0x80070002错误代码的具体解决方法.docxWin10系统使用商店下载应用提示0x80070002错误代码的具体解决方法.docxWin10系统使用商店下载应用提示0x80070002错误代码的具体解决方法....
N卡解决Surround分辨率错误
详细的介绍了电脑如何解决出现内存错误报告时的解决方法
linux中利用tacktrace信息解决段错误
解决指令错误 对于手机应用列表解决指令错误 对于手机应用列表解决指令错误 对于手机应用列表解决指令错误 对于手机应用列表解决指令错误 对于手机应用列表解决指令错误 对于手机应用列表
Java常见错误及解决方案,非常使用的常见错误及解决方案,强烈推荐新手精读
安装Adobe Acrobat 20225错误解决方案,附带相应I386安装文件,自己总结,经过实验解决了PDF打印机无法安装的 20225错误!
ORACLE常见错误代码的分析与解决ORACLE常见错误代码的分析与解决ORACLE常见错误代码的分析与解决ORACLE常见错误代码的分析与解决