游标没关闭会导致数据库内存泄露吗?数据库服务器每天掉100内存,晕!

omtf 2003-09-12 03:40:55
os: AIX 4.3.3 (64bit)
oracle 817(64bit)
文件系统

游标没关闭会导致数据库内存泄露吗?
数据库服务器的内存每天增加100M的使用量,
但业务量却没有增加,使用的内存到晚上没有业务时却降不下来.
每天几十万上下

晚上看数据库也没有其他会话.

现在每过一段时间就要重器服务器
痛....
今晚准备安装oracle8174的patch
又要熬夜了

请高手明示



...全文
265 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
LGQDUCKY 2003-09-12
  • 打赏
  • 举报
回复
oracle是着重与内存的,游标没关闭的话,如果达到最大游标数,
你的应用会出错的,为什么不关闭游标?
ColinGan 2003-09-12
  • 打赏
  • 举报
回复
这种情况应该是SQL语句有问题,导致SQL语法解析(parse)的次数无限增多,直到填满整个POOL。
oracle每发现一个新sql语句就将占用sql_area缓冲区,并将其内容写入sql_area表中

不管什么情况,建议使用如下语句:(此语句在数据库空闲时不对数据库造成任何影响)
ALTER SYSTEM FLUSH SHARED_POOL;

然后再查看内容就会多出来很多的
gladness 2003-09-12
  • 打赏
  • 举报
回复
首先要确定是oracle吃了内存,通过操作系统的工具去看看,是不是oracle干的。
然后每天查一下v$sgastat,看看是不是有一个长的比较快的。
如果是linux下,可以用ps -A v看看哪个进程占的内存最多,哪个长得最多
enhydraboy 2003-09-12
  • 打赏
  • 举报
回复
你需要跟踪一个每天数据库的内存变化情况。数据库的内存一般有data buffer和connection area是变化最大的。data buffer当有大数据量查询或者大量查询语句的时候会显著变化,而connection area当有大量用户连接的时候,也会变化很大。
因此,你要跟踪再判断是那块变化的较明显。
omtf 2003-09-12
  • 打赏
  • 举报
回复
?

17,377

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧