达梦内存结构

DM 服务器使用的内存大概分为 2 个部分
缓冲区:
数据缓冲区 BUFFER/KEEP/FAST/RECYCLE
日志缓冲区 RLOG_BUF_SIZE
内存池:
共享内存池 MEMORY POOL
memory_target
字典缓冲区 DICT_BUF_SIZE
Sql 缓冲区 CACHE_POOL_SIZE
备用内存池
其他运行时内存池
排序区
Hash
会话连接池
虚拟机内存池

 内存池 

 DM Server 的内存池包括共享内存池和其他一些运行时内存池。

动态视图 V$MEM_POOL 详细记录了当前系统中所有的内存池的状态,可通过查询这个动态视图掌握 DM Server 的内存使用情况。

 共享内存池

共享内存是 dmserver 启动时,从操作系统中申请的一大片内存,可
以在其他内存区或是缓冲区不够用的时候,申请或者释放。
Memory_target: 共享内存的总大小。 0 :表示不限制(目标大小)
Memory_pool : 共享内存池的大小(减少系统调用) 200M
Memory_extent_size :增量大小
Memory_n_pools : 共享内存池的个数。
作用:负责为其他内存池已经达到其目标大小之后的拓展提供内存。

 运行时内存池

运行时内存池是从操作系统申请一片内存作为本功能模块的内存池来使用,如会话内存池、虚拟机内存池等。

缓冲区

数据缓冲区

在将数据页写入磁盘之前以及从磁盘上读取数据页之后,数据页所存储的地方。
存在三条链来管理被缓冲的数据页
一条“自由链”:未使用过的内存数据页,
一条“LRU”链:存放已经使用过的内存数据页(包括未修改和已修改)
一条”脏“链有:用于存放已经被修改过的内存数据页。
1)四种类别:
Normal (默认值,普通页) buffer 单位 M LRU
Keep:很少或是几乎不怎么被淘汰出去的(普通页) keep 单位 M
Fast:常驻缓冲区,回滚页(用户不能指定) fast_pool_page 数据页总数。
Recycle:临时表的数据页,正常淘汰(用户不能指定) recycle 单位 M
DM 里面:用户不能指定使用 recycle 和 fast 缓冲区。
Oracle:里面存的表的数据页
DM:存的是表空间的数据页。
修改参数:SP_SET_PARA_VALUE(SCOPE,PARA_NAME,PARA_VALUE);

 Scope: 1:  动态参数  2:静态参数

字典缓冲区

主要存的是一些数据字典的相关信息,如模式信息,表信息,列信息,触发器信息等。实例会将部分的数据字典信息加载到字典缓冲区中,并采用 lru 算法进行字典信息的控制。

相关的视图: V$DICT_CACHE_ITEM:字典缓冲区中的字典对象的信息;V$DICT_CACHE:字典缓冲区的信息

SQL 缓冲区

用于存储包信息( package), 执行计划,结果集缓冲的一片专用缓存区域,对于 sql 类型多, pkg 比较多,复杂的系统建议该参数调大

 重做日志缓冲区

用于存重做日志的内存缓冲区,为了避免直接对磁盘 IO 进行随机写,将数据转换为顺序写,提高数据库写性能。

 排序区

排序区是提供数据排序所需要的内存空间,如果内存无法完成,把部分的排序转到磁盘上,对外排序

 哈希区

服务器中有 hash 相关操作,需要用到 hash 缓冲区, hash join
HJ_BUF_GLOBAL_SIZE: 全局 hash join 最大的内存空间。
HJ_BUF_SIZE: 单次 hash_join 操作最大内存空间
HAGR_BUF_SIZE: 单次 hash 分组操作最大内存空间

 达梦社区地址:https://eco.dameng.com

  • 12
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值