zoukankan      html  css  js  c++  java
  • SQLOS 内存管理器组件的关系

     
    内存节点
    内存节点是内存被划为了几块。在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者的内存终究是来至于 内存节点的,可以看出 实际安装的内存。内存的分配只是把物理内存的指针赋给了一个变量
  • 相关阅读:
    jquery事件优化---事件委托
    2017年7月6号,总结所遇到的问题
    js日期函数
    跨域请求所遇到的错误
    ajax设置Access-Control-Allow-Origin实现跨域访问
    php提前输出响应及注意问题
    php中的日期和时间
    跨域请求json数据
    C++ 与 Visual Studio 2019 和 WSL(四)——库组件
    fpic 和 fPIC
  • 原文地址:https://www.cnblogs.com/Amaranthus/p/2397780.html
Copyright © 2011-2022 走看看