代码改变世界

[2014-03-20 14:00:06] [EP000000] [执行数据库查询时发生错误]ORA-04031: 无法分配 8196 字节的共享内存 ("large pool","unknown object","hash-join subh","QERHJ list array")

2014-03-20 14:09  Qonly  阅读(1740)  评论(0编辑  收藏  举报

自从将正式数据覆盖到我测试数据库后,查询数据及操作数据时系统一直提示:[2014-03-20 14:00:06]  [EP000000] [执行数据库查询时发生错误]ORA-04031: 无法分配 8196 字节的共享内存 ("large pool","unknown object","hash-join subh","QERHJ list array") 及[2014-03-17 11:06:38]  [EP000000] ORA-4031: 无法分配 %s 字节的共享内存 ("%s","%s","%s","%s")     原因是因为数据量太大导致,系统是32bit 的,Oracle 内存只能使用到 1.7G, 没有办法扩大

 

解决方案:

1. 修改代码,尽量控制提取的数据,较少的数据 完成分析
2. 修改Oracle 参数 加大内存
3. 找一个新的环境最好是64BIT的系统,作为系统的数据库并且分配足够大的内存

 

今日查找解决方案:

select "FREE_SPACE",
"AVG_FREE_SIZE",
"FREE_COUNT",
"MAX_FREE_SIZE",
"USED_SPACE",
"AVG_USED_SIZE",
"USED_COUNT",
"MAX_USED_SIZE",
"REQUESTS",
"REQUEST_MISSES",
"LAST_MISS_SIZE",
"MAX_MISS_SIZE",
"REQUEST_FAILURES",
"LAST_FAILURE_SIZE",
"ABORTED_REQUEST_THRESHOLD",
"ABORTED_REQUESTS",
"LAST_ABORTED_SIZE"
from v$shared_pool_reserved;

通过system 查询 sql 居然无法共享内存问题神奇的解决掉了。