交换缓冲区内存(swap_buff_mem)
📄字数 593
👁️阅读量 加载中...
引入版本
v11.0.0
功能描述
系统预分配的用于与临时表空间文件进行数据交换的总内存大小(单位:MB)。
参数属性
| 属性 | 属性值 |
|---|---|
| 参数类型 | INTEGER |
| 默认值 | 128 |
| 取值范围 | [64, 1048576] |
| 影响范围 | 系统级 |
| 修改方式 | 离线修改,重启生效 |
使用场景说明
- 该参数用于控制系统与临时表空间文件进行数据交换的总内存大小(下文称作临时缓冲区内存),当系统内部进行HASH/排序/分组/去重计算时,若 system_sga_mem 资源不足,系统将借助临时缓冲区内存将数据写入临时表空间完成计算。临时缓冲区内存同样采用页的形式进行管理维护,其页大小为 256KB,是数据库进程与临时表空间物理存储介质之间的最小读写单元。
- 临时缓冲区内存在系统初始化时完成预分配,若临时缓冲区内存不足,系统会阻塞申请分配临时缓冲区内存页的任务线程(线程状态变为3),直到被阻塞任务线程获得到其它线程释放出来的资源。
- 支持访问系统变量 MEM_STATUS 或系统虚表 SYSDBA.SYS_ALL_MEM_STATUS 查看数据库节点的临时缓冲区内存总内存量/页大小/空闲页数量等信息。
注意
- 临时表空间文件采用随机 IO 方式进行数据落盘。
示例
sql
-- 离线修改 swap_buff_mem
编辑 xugu.ini修改 swap_buff_mem,重启数据库服务后生效。
-- 在线查看 swap_buff_mem
SQL> SHOW swap_buff_mem;