暂无图片
ora-04031 无法分配shared pool
我来答
分享
多米爸
2019-10-30
ora-04031 无法分配shared pool

想了解一下怎么根本解决ora-04031 无法分配shared pool的问题?

我来答
添加附件
收藏
分享
问题补充
6条回答
默认
最新
文成

墨天轮可以搜索到很多相关文档,大部分跟bug相关,在诊断的时候可以根据内存分配差异情况,以及sql解析问题
参考以下文章
04031

暂无图片 评论
暂无图片 有用 0
李嘉诚

ora-04031 shared pool 配置正确的话,生产库一般是因为大量硬解析sql未使用绑定变量导致的,建议使用绑定变量减少硬解析,硬解析可以生成awr查看,你也可以找一条查找硬解析语句的sql找到是哪个语句导致的;
SELECT *
FROM (SELECT a.PARSING_SCHEMA_NAME,
substr(sql_text, 1, 60),
count(1) counts,
dense_rank() over(order by count(*) desc) ranking
FROM v$sql a
where a.PARSING_SCHEMA_NAME <> ‘SYS’
GROUP BY a.PARSING_SCHEMA_NAME, substr(sql_text, 1, 60)
HAVING count(1) > 10)
where ranking <= 50;

暂无图片 评论
暂无图片 有用 0
weizhao.zhang (anbob)
上传附件:4031_diag_script.7z
暂无图片 评论
暂无图片 有用 0
weizhao.zhang (anbob)
  • 1, AMM ASMM is enable
  • 2, shared pool too small
  • 3, unbound variable SQL too much, resulting in fragmentation
  • 4, oracle bug
暂无图片 评论
暂无图片 有用 1
多米爸

1、SGA是30G
2、shared pool 是5G
3、没有使用内存的自动管理—是否需要改成自动管理?
4、绑定变量个人不是很懂,不知道怎么判断是否使用绑定变量!
5、数据库版本11.2.0.3.0 之前已经打过补丁了11.2.0.3.15

暂无图片 评论
暂无图片 有用 0
章芋文

可以先了解下硬解析和绑定变量的关系,这个文章又很多。
SGA 30G的话,shared pool可以适当调整到8-10G。

暂无图片 评论
暂无图片 有用 0
回答交流
提交
问题信息
请登录之后查看
附件列表
请登录之后查看
邀请回答
暂无人订阅该标签,敬请期待~~
暂无图片墨值悬赏