DM 数据库内存管理系统优点:

        1. 申请、释放内存效率更高;

        2. 能够有效地了解内存的使用情况;

        3. 易于发现内存泄露和内存写越界的问题。

        DM内存池包括共享内存池和运行时内存池,可通过查询动态视图 V$MEM_POOL掌握 DM Server 的内存使用情况。

SQL> select * from V$MEM_POOL order by addr;

dama dmbok2 数据架构 dmi data pool_共享内存

     内存池与缓冲区简介如下:

    名称

               含义

               相关内容

共享内存池

DM Server 在启动时从操作系统申请的一大片内存

MEMORY_POOL,默认为 200M。共享内存池自动扩展参数 MEMORY_EXTENT_SIZE 指定共享内存池每次扩展的大小,参数 MEMORY_TARGET 指定共享内存池能扩展到的最大大小

运行时内存池

从操作系统申请一片内存作为本功能模块的内存池来使用


数据缓冲区

将数据页写入磁盘之前以及从磁盘上读数据页之后,数据页所存储的地方

三条链来管理被缓冲的数据页:自由链,用于存放目前尚未使用的内存数据页;LRU链,用于存放已被使用的内存数据页;“脏”链,用于存放已被修改过的内存数据页。

BUFFER(100MB) 、 KEEP(8MB) 、

RECYCLE(64MB) 、

FAST_POOL_PAGES(3000)分别对应 NORMAL 缓冲区大小、KEEP 缓冲区大小、RECYCLE 缓冲区大小、FAST 缓冲区数据页总数

日志缓冲区

存放重做日志的内存缓冲区

 RLOG_BUF_SIZE 控制日志缓冲区大小,单位为页数量,且大小必须为 2 的 N 次方,否则采用系统默认大小 512 页。

字典缓冲区

存储一些数据字典信息

DICT_BUF_SIZE,默认大小为 5M;涉及对分区数较多的水平分区表访问,调大该参数

SQL 缓冲区

执行 SQL 语句过程中所需要的内存

USE_PLN_POOL设置是否需要计划重用;

CACHE_POOL_SIZE改变 SQL 缓冲区大小

排序缓冲区

提供数据排序所需要的内存空间

SORT_BUF_SIZE 由于该值是由系统内部排序算法和排序数据结构决定,建议使用默认值2M。

哈希缓冲区

提供哈希连接而设定的虚拟缓冲区

HJ_BUF_SIZE限制哈希连接的效率,以建议使用默认值,或设置为更大的值

SSD 缓冲区

作为内存缓存与普通磁盘之间的缓冲层

SSD_BUF_SIZE默认为0,即关闭的;

SSD_FILE_PATH 指定文件所在路径