SQL Server 2012笔记分享-6:理解内存管理

内存管理 – SQL Server 2005/2008/2008r2

SQL Server 2012以前的版本(SQL 2005/2008/2008R2),有single page allocator 和multi page allocator。也就是说,如果申请的内存是8k以内的,就会有单页分配器分配,而大于8kb的内存请求,使用multi page 分配器来管理。如图所示。

使用select * from sys.dm_os_memory_clerks查询memory clerk,会发现single pages 和multi pages 两列。

内存管理 – SQL Server 2012

SQL Server 2012里面不再有single page allocator 和multi page allocator,而是把它们统一起来了,叫做 any size page allocator。如图所示。

使用select * from sys.dm_os_memory_clerks查询memory clerk,会发现single page 和multi page字样消失了,只剩下pages 字样。

从上面的图可以看出,SQL Server 2012 使用memory Manager来统一响应SQL Server 内部各种组件内存申请的请求。在SQL Server 2012里面,max server memory 不再像以前的版本那样,只控制buffer pool的大小,也包括那些大于8kb 的内存请求。max server memory 能够更准确地控制SQL Server 的内存使用了。

参考文档:

Memory Manager Configuration changes in SQL Server 2012

http://sqlblog.com/blogs/sqlos_team/archive/2012/07/12/memory-manager-configuration-changes-in-sql-server-2012.aspx

SQL Server 2012 内存管理 (memory management) 改进

http://www.cnblogs.com/stswordman/p/3239754.html

本文出自 “曾垂鑫的技术专栏” 博客,谢绝转载!

SQL Server 2012笔记分享-6:理解内存管理,古老的榕树,5-wow.com

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。