修复︰ SQL Server 服务的内存使用量增加快速运行 SQL Server 2005 中或在 SQL Server 2008年中使用链接的服务器查询时

适用于: SQL Server 2008 StandardSQL Server 2008 DeveloperSQL Server 2008 Enterprise

Microsoft 为一个可下载文件分发 Microsoft SQL Server 2008年的修补程序。修补程序是累积性的因为每个新版本包含的所有修补程序,包含上一个 SQL Server 2008 的所有安全修补程序的修补都程序版本。

症状


在 Microsoft SQL Server 2005年中或在 SQL Server 2008年中,您可以使用链接的服务器的远程服务器上运行的存储的过程。多次运行的存储的过程后,您可能会发现 SQL Server 服务的内存使用量会快速增加。此外,SQL Server 2008年错误日志文件中可能会记录各种错误消息相关的消耗的MemTolLeave地址空间中的内存。

注意:当您使用复制、 日志传送或镜像,还可能会遇到此问题。这些功能可以使用链接的服务器使用的存储的过程。

原因


当您运行该查询使用链接的服务器时发生内存泄漏被导致此问题。远程存储的过程调用时,将发生泄漏。有两种潜在的泄漏︰
  • 返回值的存储的过程调用,总是泄漏。这是小,但却是正则的泄漏。
  • 远程存储的过程调用具有 OUT 参数的sqlvariant数据类型。

解决方案


SQL Server 2008 Service Pack 1


此问题的修补程序首次发布的累积更新 3 为 SQL Server 2008 Service Pack 1。有关此累积更新包的更多信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章 ︰
971491累计更新 SQL Server 2008 Service Pack 1 包 3
注意:因为版本具有累计性,所以每个新修补程序版本包含上一个 SQL Server 2008 修补程序版本随附的所有修补程序和所有安全修复程序。Microsoft 建议您考虑应用包含此修复程序的最新的修补程序版本。有关详细信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
SQL Server 2008年生成 SQL Server 2008 Service Pack 1 发布后发布的970365
为特定的 SQL Server 服务包创建 Microsoft SQL Server 2008年的修补程序。必须将一个 SQL Server 2008 Service Pack 1 的修补程序应用到安装的 SQL Server 2008 Service Pack 1。默认情况下,在下一次 SQL Server service pack 中包含任何 SQL Server service pack 中提供的修补程序。

SQL Server 2005 的服务包 3


此问题的修补程序首次发布累积更新 6 中的 SQL 服务器 2005 Service Pack 3。有关此累积更新包的更多信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章 ︰
974648累计更新 SQL 服务器 2005 Service Pack 3 包 6
注意:因为版本具有累积性,所以每个新修补程序版本包含的所有修补程序,并附带上一个 SQL Server 2005 的所有安全修补程序的修补都程序版本。Microsoft 建议您考虑应用包含此修复程序的最新的修补程序版本。有关详细信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
SQL Server 2005 版本 SQL 服务器 2005 Service Pack 3 发布后发布的960598
为特定的 SQL Server 服务包创建 Microsoft SQL Server 2005年的修补程序。必须将一个 SQL 服务器 2005 Service Pack 3 修补程序应用到安装的 SQL 服务器 2005 Service Pack 3。默认情况下,在下一次 SQL Server service pack 中包含任何 SQL Server service pack 中提供的修补程序。

SQL Server 2008年的发行版

重要:如果您运行的 SQL Server 2008年的发行版,则必须安装此修复程序。

累积更新 8 中首次发布此问题的修补程序。有关如何为 SQL Server 2008 中获取此累积更新包的详细信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
SQL Server 2008 年的975976累计更新程序包 8
注意:因为版本具有累计性,所以每个新修补程序版本包含上一个 SQL Server 2008 修补程序版本随附的所有修补程序和所有安全修复程序。我们建议您考虑将应用包含此修复程序的最新的修补程序版本。有关详细信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
SQL Server 2008年生成 SQL Server 2008年发布后发布的956909

状态


Microsoft 已经确认这是“适用于”一节中列出的 Microsoft 产品中的问题。

参考资料


对于 SQL Server 的增量服务模式的详细信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章︰

935897的增量服务模式是可以从 SQL Server 团队提供报告的问题的修补程序


有关命名 SQL Server 更新架构的详细信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章︰

822499对于 Microsoft SQL Server 软件更新程序包的新命名方案


有关软件更新术语的详细信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
用于描述 Microsoft 软件更新的标准术语的824684说明

详细信息


SQL Server 2008 R2 BPA 信息

SQL Server 2008 R2 最佳实践分析器 (SQL Server 2008 R2 BPA) 提供一个规则来检测的情况的 SQL Server 实例已链接的服务器被配置为使用,并不应用此修补程序。SQL Server 2008 R2 BPA 支持 SQL Server 2008年和 SQL Server 2008 R2。

如果您运行 BPA 工具并遇到警告时,"数据库引擎的链接的服务器内存泄漏修复缺失,"您需要检查这篇文章中提到的症状并应用适合的累积更新。

参考资料

规则的软件规则标题规则标识符
SQL Server 2008 R2 BPA 规则链接的服务器内存泄漏修复缺失RID3807