SQL Server 2012 内存管理 (memory management) 改进
2013-08-06 07:29
239 查看
转自 http://blogs.msdn.com/b/apgcdsd/archive/2013/07/11/sql-server-2012-memory-management.aspx
SQL Server 2012 的内存管理和以前的版本相比,有以下的一些变化。
一.内存分配器的变化
SQL Server 2012以前的版本,比如SQL Server 2008 R2等,有single page allocator 和multi page allocator。也就是说,如果申请的内存是8k以内的,就会有单页分配器分配,而大于8kb的内存请求,使用multi page 分配器来管理。所以,如果你运行DBCC MemoryStatus,你会发现这两个分配器分配的内存情况:
如果你查询memory clerk,也会发现single pages 和multi pages 两列:
select * from sys.dm_os_memory_clerks
而2012里面就不一样了,你会发现single page 和multi page字样消失了,只剩下pages 字样:
而下面的语句的输出也是不一样的:
select * from sys.dm_os_memory_clerks
那么为什么会有这样的变化呢?原因就是SQL Server 2012里面不再有single page allocator 和multi page allocator,而是把它们统一起来了,叫做 any size page allocator。下面的两张图可以看到这样的变化:
SQL Server 2008 R2:
SQL Server 2012:
从上面的图可以看出,SQL Server 2012 多了一个memory Manager,它来统一响应SQL Server 内部各种组件内存申请的请求。因为这个原因,在SQL Server 2012里面,max server memory 不再像以前的版本那样,只控制buffer pool的大小,也包括那些大于8kb 的内存请求。也就是, max server memory 能够更准确地控制SQL Server 的内存使用了。更多内存管理信息,可以参考:
http://sqlblog.com/blogs/sqlos_team/archive/2012/07/12/memory-manager-configuration-changes-in-sql-server-2012.aspx
SQL Server 2012 的内存管理和以前的版本相比,有以下的一些变化。
一.内存分配器的变化
SQL Server 2012以前的版本,比如SQL Server 2008 R2等,有single page allocator 和multi page allocator。也就是说,如果申请的内存是8k以内的,就会有单页分配器分配,而大于8kb的内存请求,使用multi page 分配器来管理。所以,如果你运行DBCC MemoryStatus,你会发现这两个分配器分配的内存情况:
如果你查询memory clerk,也会发现single pages 和multi pages 两列:
select * from sys.dm_os_memory_clerks
而2012里面就不一样了,你会发现single page 和multi page字样消失了,只剩下pages 字样:
而下面的语句的输出也是不一样的:
select * from sys.dm_os_memory_clerks
那么为什么会有这样的变化呢?原因就是SQL Server 2012里面不再有single page allocator 和multi page allocator,而是把它们统一起来了,叫做 any size page allocator。下面的两张图可以看到这样的变化:
SQL Server 2008 R2:
SQL Server 2012:
从上面的图可以看出,SQL Server 2012 多了一个memory Manager,它来统一响应SQL Server 内部各种组件内存申请的请求。因为这个原因,在SQL Server 2012里面,max server memory 不再像以前的版本那样,只控制buffer pool的大小,也包括那些大于8kb 的内存请求。也就是, max server memory 能够更准确地控制SQL Server 的内存使用了。更多内存管理信息,可以参考:
http://sqlblog.com/blogs/sqlos_team/archive/2012/07/12/memory-manager-configuration-changes-in-sql-server-2012.aspx
相关文章推荐
- SQL Server 2012笔记分享-6:理解内存管理
- SQL Server 2012 中的 Service Broker功能的一些改进或增强
- SSMS在SQL Server 2008这个版本中的改进 【转载】
- 精心收集整理的SQL Server 2014/2012/2008/2005/2000简体中文企业版下载地址
- 微软正式发布SQL Server 2012 RTM版本
- SQL Server 2005的改进
- SQL Server 2012笔记分享-14:数据库内存设置 推荐
- SQL Server 2012新增的内置函数尝试
- Sql Server 2012 存储过程的单步调试
- SQL Server 2012 开发新特性:分析函数
- SQL Server 2012:SQL Server体系结构——一个查询的生命周期(第1部分)
- VS2010、SQL Server 2008和SQL Server 2012安装详解
- SQL Server 2012笔记分享-37:SQL权限设置
- 如何彻底卸载sql server 2012
- SQL Server 中统计信息直方图中对于没有覆盖到谓词预估以及预估策略的变化(SQL2012-->SQL2014-->SQL2016)
- SQL Server 2012 各版本功能比较
- win7 sp1 升级安装 sql server 2012 遇到的问题
- SQL Server 2012大幅增强了T-SQL
- SQL Server 2012笔记分享-43:身份验证模式的区别