数据缓冲区内存(data_buff_mem)
📄字数 713
👁️阅读量 加载中...
引入版本
v11.0.0
功能描述
系统预分配的用于数据页缓存的总内存大小(单位:MB)。
参数属性
| 属性 | 属性值 |
|---|---|
| 参数类型 | INTEGER |
| 默认值 | 256 |
| 取值范围 | [8, 2147483647] |
| 影响范围 | 系统级 |
| 修改方式 | 离线修改,重启生效 |
使用场景说明
- 该参数用于控制系统与数据表空间文件进行数据交换的总内存大小,其采用页的形式进行管理维护,其页大小固定为 8KB,是数据库进程与数据表空间物理存储介质之间的最小读写单元。
- 数据缓冲区内存(data_buff_mem)在系统初始化时完成预分配,当其资源紧张时,系统会阻塞申请分配数据缓冲区内存的任务线程(线程状态变为3),直到被阻塞的任务线程分配到资源。
- 该参数一般建议配置为主机实际物理内存的 60%。
- 支持访问系统变量 MEM_STATUS 或系统虚表 SYSDBA.SYS_ALL_MEM_STATUS 查看数据库节点上的数据缓冲区总内存量/页大小/空闲页数量/脏页数量等信息。
注意
- 数据表空间文件采用随机 IO 方式进行数据落盘。
- 在设计上为了更好的发挥数据库的并行处理能力,采用分组设计对数据缓冲区内存进行分组管理,相关参数 cata_parti_num。
- 系统内部有专门的线程(线程类型 = 4)负责维护数据缓冲区内存,每当检测到空闲的数据缓冲区内存页数量达到警戒线时,系统会尝试从 SGA 内存中借用(需要 ena_share_sga 设置为true)内存并进行补充,若借用失败,则会主动尝试对数据缓冲区内存进行 LRU 淘汰。
示例
sql
-- 离线修改 data_buff_mem
编辑 xugu.ini 修改 data_buff_mem,重启数据库服务后生效。
-- 在线查看 data_buff_mem
SQL> SHOW data_buff_mem;