内存配置和调整大小 SQL Server 2012年注意事项

文章翻译 文章翻译
文章编号: 2663912 - 查看本文应用于的产品
展开全部 | 关闭全部

概要

Microsoft SQL Server 执行自动和动态内存管理基于 SQL Server 的内部组件和系统的工作负荷的当前内存要求。SQL Server 还提供了与内存相关的配置选项,以帮助为特定的应用程序行为模式和特定的高级的需求进行细微调整。不同的配置选项如下所示:
  • sp_configure 选项 (最大服务器内存 (MB), 最小服务器内存 (MB)在启用 awe)
  • -g 启动参数 (memory_to_reserve)
  • 锁定的页

Microsoft SQL Server 2012年介绍会影响管理员如何配置这些内存选项的内存管理器中的更改。请检查之前您升级到 SQL Server 2012年或在配置新安装的 SQL Server 2012年之前此处介绍的更改。

更多信息

SQL Server 2012年还引入了解决特定类型的内存分配的方法和控制的最大可以使用这些类型的分配的内存量的内存配置选项中的更改。更改 SQL Server 2012年中的特定内存分配请求从 SQL CLR 和多页分配。SQL Server 2012年有新的页面分配器管理单页和多页分配 (小于 8 KB 号和大于 8 KB 分配请求)。因此,它没有单独分类的 SQL Server 2012年中称为"多页分配"。

"最大服务器内存 (MB)"和"最小服务器内存 (MB)"的更改

在早期版本的 SQL Server (SQL Server 2005,SQL Server 2008 年和 SQL Server 2008 R2),以下配置选项确定的缓冲池中消耗物理内存的限制。请注意,我们说的关于物理内存在这种情况下,已提交的 SQL Server 数据库引擎进程的物理内存:
  • 最大服务器内存 (MB)
  • 最小服务器内存 (MB)
此配置选项通常包含小于或等于 SQL Server 进程中的 8 KB 的内存分配。这些分配了也称为"single_page_allocations",因为 SQL Server 内存管理器使用 8 KB 的页面大小。此配置中未包括以下的内存分配请求:
  • 多页分配从 SQL Server: 这些是请求多个 8 KB 的分配。
  • CLR 分配: 这些分配包含 SQL CLR 堆和其全局分配 CLR 初始化过程中创建的。
  • SQL Server 进程中的线程堆栈的内存分配。
  • 直接对 Windows 进行内存分配请求: 其中包括 Windows 堆的使用和直接到 SQL Server 进程加载的模块所做的虚拟分配。这类内存分配请求的示例包括从扩展存储的过程的 Dll,通过使用自动化过程 (sp_OA 调用),并分配从链接的服务器提供程序创建的对象分配。

从 SQL Server 2012年,多页分配和 CLR 分配也包括在由控制的内存限制 最大服务器内存 (MB)最小服务器内存 (MB).此更改提供了更准确的大小调整能力,通过 SQL Server 内存管理器的所有内存需求。请仔细检查您的当前 最大服务器内存 (MB)最小服务器内存 (MB) 升级到 SQL Server 2012年后的值。因为 SQL Server 2012年现在包括,占据了更多的内存分配与早期版本相比,您应该检查此类值。这些更改应用于 32 位和 64 位版本的 SQL Server 2012年。

下表显示了是否由控制特定类型的内存分配 最大服务器内存 (MB)最小服务器内存 (MB)配置选项。
收起该表格展开该表格
内存分配的类型SQL Server 2005,SQL Server,2008 年,SQL Server 2008 R2SQL Server 2012
单个页的分配是的将其合并到"任何大小"页的分配
多页分配是的将其合并到"任何大小"页的分配
CLR 分配
线程的堆栈内存
从 Windows 直接分配

"Memory_to_reserve"的更改


在早期版本的 32 位 SQL Server (SQL Server 2005,SQL Server 2008 年和 SQL Server 2008 R2),SQL Server 内存管理器将放在一边的过程的一部分 虚拟地址空间 对于下列分配请求的使用:
  • 多页分配从 SQL Server: 这些是请求多个 8 KB 的分配。
  • CLR 分配: 这些分配包含 SQL CLR 堆和其全局分配 CLR 初始化过程中创建的。
  • SQL Server 进程中的线程堆栈的内存分配。
  • 直接对 Windows 进行内存分配请求: 这些分配请求包括 Windows 堆的使用和直接到 SQL Server 进程加载的模块所做的虚拟分配。这类内存分配请求的示例包括从扩展存储的过程的 Dll,通过使用自动化过程 (sp_OA 调用),并分配从链接的服务器提供程序创建的对象分配。

由这些分配为保留的虚拟地址空间 memory_to_reserve 配置选项。SQL Server 使用的默认值为 256 MB。要覆盖默认值,请使用 SQL Server -g 启动参数。这一部分的虚拟地址空间也被称为"保留内存"或"非缓冲池区"。

因为 SQL Server 2012年有新的"任何大小"页面分配器处理分配大于 8 KB) memory_to_reserve 值不包含多页的分配。除外,这种更改,其他所有内容将保持与此配置选项相同。

下表显示了特定类型的内存分配属于 memory_to_reserve为 SQL Server 的进程的虚拟地址空间的地区。
收起该表格展开该表格
内存分配的类型SQL Server 2005,SQL Server,2008 年,SQL Server 2008 R2SQL Server 2012
单个页的分配否,整合到了"任何大小"页的分配
多页分配否,整合到了"任何大小"页的分配
CLR 分配
线程的堆栈内存
从 Windows 直接分配

其他与内存相关的配置选项的更改

如果您配置了 SQL Server 2005、 SQL Server 2008 年或 SQL Server 2008 R2,使用"启用 awe"选项,请查看以下文章以了解重要更改该配置选项:
"启用 awe"SQL Server 功能已被否决

如果您配置了 SQL Server 2005,SQL Server 2008 年或 SQL Server 2008 R2,才能使用"锁定的页面"功能,请查看以下文章以了解重要更改该配置选项:
启用"锁定页面"功能,在 SQL Server 2012

参考

SQL Server Denali 的内存管理器更改

新的 SQLOS 功能,在 SQL Server 2012

属性

文章编号: 2663912 - 最后修改: 2012年2月21日 - 修订: 1.0
这篇文章中的信息适用于:
  • Microsoft SQL Server 2012 Enterprise
关键字:?
kbmt KB2663912 KbMtzh
机器翻译
注意:这篇文章是由无人工介入的微软自动的机器翻译软件翻译完成。微软很高兴能同时提供给您由人工翻译的和由机器翻译的文章, 以使您能使用您的语言访问所有的知识库文章。然而由机器翻译的文章并不总是完美的。它可能存在词汇,语法或文法的问题,就像是一个外国人在说中文时总是可能犯这样的错误。虽然我们经常升级机器翻译软件以提高翻译质量,但是我们不保证机器翻译的正确度,也不对由于内容的误译或者客户对它的错误使用所引起的任何直接的, 或间接的可能的问题负责。
点击这里察看该文章的英文版: 2663912
Microsoft和/或其各供应商对于为任何目的而在本服务器上发布的文件及有关图形所含信息的适用性,不作任何声明。 所有该等文件及有关图形均"依样"提供,而不带任何性质的保证。Microsoft和/或其各供应商特此声明,对所有与该等信息有关的保证和条件不负任何责任,该等保证和条件包括关于适销性、符合特定用途、所有权和非侵权的所有默示保证和条件。在任何情况下,在由于使用或运行本服务器上的信息所引起的或与该等使用或运行有关的诉讼中,Microsoft和/或其各供应商就因丧失使用、数据或利润所导致的任何特别的、间接的、衍生性的损害或任何因使用而丧失所导致的之损害、数据或利润不负任何责任。

提供反馈

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com