设置参数: MAX_SESSION_MEMORY
默认值: 0
说明: Maximum memory(In Megabytes) a single session can use
建议默认值为: 2GB
设置方法:执行下面SQL即可:
sp_set_para_value(1,‘MAX_SESSION_MEMORY’,2048);–单位为M 这里是设置 2GB
说明:系统级,设置后是立即生效的;如果有会话已经超了,执行语句时会报错:[-549]:The session memory quota is insufficient.
这些参数要重启数据库才能生效。
sp_set_para_value(2,‘VM_POOL_TARGET’,10240); --单位为K 这里时设置 10M
sp_set_para_value(2,‘SESS_POOL_TARGET’,10240); --单位为K 这里时设置 10M
sp_set_para_value(2,‘VM_POOL_SIZE’,2048); --单位为K 这里时设置 2M
sp_set_para_value(2,‘SESS_POOL_SIZE’,2048); --单位为K 这里时设置 2M
- MAX_SESSION_MEMORY 会话级,达到2G一般来说,都是异常会话。
结合下面sql,可以知道当前数据库上的所有session,已用内存情况。
SELECT
creator ,
sum(TOTAL_SIZE) /1024.0 总大小KB ,
sum(TARGET_SIZE) /1024.0 水位线KB,
sum(ORG_SIZE) /1024.0 初始大小KB
FROM
V$MEM_POOL
group by
creator having count(*)<=4 order by 2 desc;
- VM_POOL_SIZE SESS_POOL_SIZE 默认值均为64k,默认值偏小; VM_POOL_TARGET SESS_POOL_TARGET 默认值均为16M,默认值偏大;它们是一组相关的参数。
VM_POOL_SIZE SESS_POOL_SIZE 建议根据实际情况适当调整。在连接数可控的系统上,无其他风险。
VM_POOL_TARGET SESS_POOL_TARGET 在连接数较大的系统上,或者要控制内存使用的系统上,建议根据实际情况适当小,否则,需要适当增加数据库服务器物理内存。
结合下面sql,可以知道当前数据库上的所有session,已用内存情况。
-- 全部都超了 平均值在 (主要关注平均值)
-- 预期想让 会话私有内存 自持
SELECT creator,avg(TOTAL_SIZE/1024.0) over (partition by 1),TOTAL_SIZE/1024.0,TARGET_SIZE/1024.0,ORG_SIZE/1024.0,TOTAL_SIZE*1.0/ORG_SIZE FROM V$MEM_POOL WHERE NAME IN ('SESSION')
-- 均值到了 (主要关注平均值)
-- 预期想让 vm 自持
SELECT creator,avg(TOTAL_SIZE/1024.0) over (partition by 1),TOTAL_SIZE/1024.0,ORG_SIZE/1024.0,TOTAL_SIZE*1.0/ORG_SIZE FROM V$MEM_POOL WHERE NAME IN ('VIRTUAL MACHINE')
文章
阅读量
获赞