SQLOS 内存管理器组件的关系

本文详细介绍了SQL Server中的内存管理概念,包括内存节点、内存clerk和内存对象的作用及分类。此外还探讨了缓存机制,如buffer pool和高速过程缓存的工作原理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 
内存节点
内存节点是内存被划为了几块。在numa体系中一个numa节点对应一个内存节点。
主要功能是提供分配位置。这句话来自 sql server 求生秘笈 很难理解。应该是分配内存用的。也可以理解为物理内存最原始的位置。
 
内存clerk
内存clerk,如果内存管理器的客户端需要分配内存,那么必须先建立内存clerk。
dmv 
2008:返回 SQL Server 实例中当前处于活动状态的全部内存 Clerk 的集合。
2012:返回 SQL Server 实例中当前处于活动状态的全部内存分配器的集合。
干嘛要翻译成内存clerk呢,翻译成分配器多好大家都看的懂。
 
内存对象
内存对象是一个堆,通过请求内存clerk分配内存,有3中类型的内存对象。
1.可变的内存对象
2.递增的内存对象
3.固定大小的内存对象
 
缓存
缓存在sql server 里面主要是2类一个是 buffer pool 一个是 高速过程缓存
buffer pool 由 8k固定大小的分配器 和 页缓存组成
 
图上面的各个框都解释了一下,接下来讲讲图,这个图的tip 是内存管理器的组件及其关系。
但是我看来感觉像是内存分配的过程。
 
1个内存对象通过页分配器 可以从buffer pool 中获取内存,也可以从内存clerk中获取内存。但是2者的内存终究是来至于 内存节点的,可以看出 实际安装的内存。内存的分配只是把物理内存的指针赋给了一个变量
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值