内存管理 – SQL Server 2005/2008/2008r2html
SQL Server 2012之前的版本(SQL 2005/2008/2008R2),有single page allocator 和multi page allocator。也就是说,若是申请的内存是8k之内的,就会有单页分配器分配,而大于8kb的内存请求,使用multi page 分配器来管理。如图所示。sql
使用select * from sys.dm_os_memory_clerks查询memory clerk,会发现single pages 和multi pages 两列。ide
内存管理 – SQL Server 2012spa
SQL Server 2012里面再也不有single page allocator 和multi page allocator,而是把它们统一块儿来了,叫作 any size page allocator。如图所示。server
使用select * from sys.dm_os_memory_clerks查询memory clerk,会发现single page 和multi page字样消失了,只剩下pages 字样。htm
从上面的图能够看出,SQL Server 2012 使用memory Manager来统一响应SQL Server 内部各类组件内存申请的请求。在SQL Server 2012里面,max server memory 再也不像之前的版本那样,只控制buffer pool的大小,也包括那些大于8kb 的内存请求。max server memory 可以更准确地控制SQL Server 的内存使用了。blog
参考文档:ip
Memory Manager Configuration changes in SQL Server 2012内存
SQL Server 2012 内存管理 (memory management) 改进