sql server学习基础之内存初探学习基础之内存初探
一一. 前言前言
对于sql server 这个产品来说,内存这块是最重要的一个资源, 当我们新建一个会话,相同的sql语句查询第二次查询时间往
往会比第一次快,特别是在sql统计或大量查询数据输出时,会有这么感觉。除了第一次要编译生成执行计划, 在CPU,I/O 的
影响外,最主要的是第二次查询是从内存缓存中读出,为什么是这样,sql server 内存里存储了什么,它与windows内存又有
什么区别? 参考了一些资料 下面来试着讲讲。
二二. 内存和硬盘内存和硬盘
为什么内存是宝贵的,在每个系统上都是有限的,就像你看到的1 tb的硬盘,但是你通常看到的是50-200 G的内存, 物理内
存的访问速度非常快,不能超过一定的限制。在内存有限的情况下,如果所有的进程都使用了有限的内存,并且新的进程将无
法为他们找到任何内存,这就出现了虚拟地址空间的概念(也称为VAS)。
Virtual Address Space(虚拟地址空间)
是指一个应用程序能够申请访问的最大地址空间。32位寻址空间最大是4G, 64位寻址空间最大是8TB。
VAS作为中间的抽象层的, 不是所有的请求都直接映射到物理内存,它首先映射到VAS然后映射到物理内存。因此,它可以更
协调的方式管理对内存的请求,而不是让进程去做,如果不是这样,它很快就会导致内存崩溃。
在Windows操作系统中,VAS 的内核进程与用户进程之间的划分是相同的。对于32位系统,最大的VAS 是4 G的内核/ 2 G到
应用程序的中,在这里,SQL Server是应用程序进程,当我使用word进程时,它意味SQL Server进程差不多一样,将得到2
G的VAS。因此,从理论上讲,这意味着任何应用程序进程在32位上运行的都将拥有最大限度的2 G。
三三 sql server 内存内存 架构架构
sql server 内存管理,在sql server 2012发生了重大改变,对内存重新实现了一遍。 先看下版本之间内存管理图的区别
名词术语