达梦8——内存参数分析
一、内存简介
达梦数据库的内存使用简单可以分为如下三部分:
select * from v$mem_pool;
select * from v$dm_ini where para_NAME = 'MEMORY_POOL';
达梦数据库系统使用的内存分为3部分。
分别是缓冲区内存、主内存、其他内存。
二、达梦内存详解
1、缓冲区
缓冲区内存分为
(1)数据缓冲区
- normal缓冲区,对应的ini参数是buffer,
- keep缓冲区,常驻的数据都放在keep数据页中,对应的ini参数就是keep,
- recycle缓冲区,高并发系统、使用with as语句较多,临时数据较多需要将这个recycle数据页所占用的内存值调大,对应的ini参数是recycle。记住所有的页大小在初始化实例时已经设定好了,现在使用ini参数修改的是缓冲区内存大小。
- fast缓冲区,fast包含数据页和回滚页, 常驻缓冲区,这两者都是由系统自动管理,无需用户干涉对应的ini参数是fast_pool_pages和fast_roll_pages,代表fast缓冲区的大小为多少个数据页。,
select * from v$dm_ini where para_NAME = 'BUFFER'; select * from v$dm_ini where para_NAME = 'KEEP'; select * from v$dm_ini where para_NAME = 'RECYCLE';
select * from v$dm_ini where para_NAME = 'FAST_POOL_PAGES';
select * from v$dm_ini where para_NAME = 'FAST_ROLL_PAGES';
有个视图v$bufferpool代表了数据缓冲区所有的pool,咱看这个视图的查询结果:
通过v$bufferpool视图和这个sql,可以大致算出数据缓冲区的总大小
select sum(n_pages * page_size) from v$bufferpool;
(2)日志缓冲区
redo_log日志在写入磁盘前,先写入在日志缓冲区中,最后在机会合适时再写入日志缓冲区。对应的ini参数是RLOG_BUF_SIZE
select * from V$DM_INI WHERE PARA_NAME = 'RLOG_BUF_SIZE'; 单位是页数量
SELECT * FROM v$rlog;
(3)sql缓冲区
- 所需执行的sql执行计划,sql,结果集都会在缓存在sql缓冲区中。
- v$cacheitem,记录了当前sql缓冲区的使用情况。此外,v$cachepln、v$cachers、v$cachesql分别记录了执行计划缓存、结果集缓存、SQL语句缓存(注:这些视图都是在参数USE_PLN_POOL !=0才统计,其中结果集缓存还受rs_can_cache、rs_cache_tables、rs_cache_min_time参数控制)。
- 对于SQL类别多、包比较多的系统可适当调大该参数。
- 常用 Select sum(item_size) from v$cacheitem 来计算SCP的大小。(存疑,这个结算结果和cache——pool——size的值不一样)
select * from v$dm_ini where para_NAME = 'CACHE_POOL_SIZE'; 单位是M
SELECT * FROM V$CACHEPLN;
(4)数据字典缓冲区
数据库对像比如表,索引,视图,序列,同义词,触发器,存储过程的信息都缓存在数据字典缓冲区中。
在数据库对象较多时,可适当增大该参数。通过查询select total_size,used_size FROM v$dict_cache
select * from V$DM_INI WHERE PARA_NAME = 'DICT_BUF_SIZE';
若想知道字典缓冲区中缓存对象的详细信息需查询视图v$dict_cache_item
SELECT * FROM V$DICT_CACHE_ITEM ;
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!