为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
【DM版本】:
【操作系统】:
【CPU】:
【问题描述】*:
检查现有生产环境的会话和资源使用情况,发现有几个语句占用的内存非常大
查询的语句如下:
SELECT MAX_MEM_USED/1024/1024 as mb,sql_txt FROM V$SQL_STAT order by MAX_MEM_USED DESC;
结果如下:
810 SELECT * FROM system_setting limit 1
391 select 1 from dual
390 select 1 from dual
370 select 1 from dual
356 select 1 from dual
请教一下问什么这个简单的查询语句会占用如此高的内存?这个几个语句查出来还是空闲会话,真正的活动会话反而用不了那么多内存
哈哈哈哈,这个问题非常好!
首先,得和您道歉,给您造成困扰了。然后再解释问题,
这里,是因为同一个句柄上的这个,MAX_MEM_USED ,在监控的时候,没有处理好,我们目前已经发现并且修正啦(23年Q4的版本,预期是OK的)
在之前的版本中,该值,类似在同一个句柄上,对这个内存的统计值做了累积了。(没有清零) —— 因此,这里实际上不是这个SQL的实际内存消耗。而且可能出现,服务器内存才8G,可能看到某个 V$SQL_STAT 条目,MAX_MEM_USED 甚至超过8G。