千家信息网

数据库内存结构是怎样的

发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,数据库内存结构是怎样的,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。数据库从操作系统申请到的内存可分为两部分:1.缓存池
千家信息网最后更新 2026年11月03日数据库内存结构是怎样的

数据库内存结构是怎样的,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。

数据库从操作系统申请到的内存可分为两部分:
1.缓存池内存(数据页和空闲页)
2.非缓存池内存(线程/DLL/连接服务器等)

Note:通过服务器实例属性设置的最大/最小服务器内存是指缓存池内存
Note:Express只能使用1G内存

数据库内存可分为三个层级
Level1:内存节点(Memory Node),提供低级的分配器的接口和实现,在NUMA中内存节点和CPU节点对应,只有内存CLERK可以访问内存节点;

Level2:由内存CLERK/内存缓存/内存池三部分组成,内存CLERK访问内存节点的接口来分配内存。

Level3:内存对象,SQL SERVER组件使用内存对象,而不使用Memory CLERK,内存对象使用内存CLERK的页分配器接口来分配页。

数据库内存按申请大小分成两部分
1.申请小于等于8KB为一单位的内存,这些内存被用于缓存(singlepage allocator)
2.申请大于8KB为一单位的内存,这些内存主要用于SQL CLR,Linked Server and backup buffer and others. 这些内存称为Multi-Page OR MemToLeave(multioPage allocator)

MemToLeave保留内存=((CPU数量-4)+256)*0.5+256 约等于384MB

查看Memory CLERK的内存使用情况可调用sys.dm_os_memory_clerks视图


查看Buffer pool的内存使用情况可调用sys.dm_os_buffer_descriptors视图

查看各数据库缓存情况
SELECT
DB_NAME(DS.database_id) AS DatabaseName,
CAST(COUNT(1) *8.0/1024.0 AS INT) UsedMB
FROM sys.dm_os_buffer_descriptors DS
GROUP BY database_id


数据库使用的总内存:主要由buffer pool中用于缓存的内存+从Buffer pool中借(stolen)的CLERK singlePage的内存+MemToLeave(MultiPage)的内存

SELECT
'SinglePage(MB)',
CAST(SUM(C.single_pages_kb)/1024.0 AS NUMERIC(10,2))
FROM sys.dm_os_memory_clerks C
UNION ALL
SELECT
'MemToLeave(MB)',
CAST(SUM(C.multi_pages_kb)/1024.0 AS NUMERIC(10,2))
FROM sys.dm_os_memory_clerks C
UNION ALL
SELECT
'Buffer Pool(MB)',
CAST(COUNT(1) *8.0/1024.0 AS NUMERIC(10,2)) AS UsedMB
FROM sys.dm_os_buffer_descriptors DS

或者使用性能计数器来查看SQLServer占用的内存
SELECT * FROM sys.sysperfinfo P
WHERE P.object_name LIKE 'SQLServer:Memory Manager%'
AND( P.counter_name LIKE 'Target Server Memory (KB)%'
OR P.counter_name LIKE 'Total Server Memory (KB)%')


Memory Object:
本质上是一个堆,由Page allocator进行分配,使用sys.dm_os_memory_objects来查看,使用page_allocator_address来与标识memory clerk

看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注行业资讯频道,感谢您对的支持。

内存 数据 缓存 数据库 节点 分配 对象 情况 接口 服务器 部分 池内 服务 分配器 单位 视图 可调 帮助 结构 低级 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 科技互联网企业 互联网科技垄断 互联网科技排名 深圳齐家互联网科技 齐家互联网科技有限公司 多迪互联网科技有限公司 互联网科技有限公司 翻译 互联网科技生活的内容 互联网巨头投资的硬核科技 海南科技产业互联网平台 科技互联网的估值 剑昆互联网络科技有限公司临桂 互联网时代科技改变生活 翼展科技 首家互联网医院 四川慕妮娅互联网科技有限公司 群盈汇互联网科技有限公司 上海互联网科技公司ppt 2021世界互联网领先科技成果发布 广西科技产业互联网是什么 三亚科技创新互联网基地 天津市摩尔互联网科技 互联网金融 科技 深圳卡尔迅互联网科技有限公司怎么样 成都互联网科技公司100强 呼和浩特新华互联网科技学院 陕西云淼互联网科技公司 互联网高科技行业有哪些企业 北京瑞云互联网科技有限公司 伍佰万互联网科技是干嘛的 利用互联网等科技手段
0