使用 Microsoft 登录
登录或创建帐户。
你好,
使用其他帐户。
你有多个帐户
选择要登录的帐户。

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

症状

具有 Microsoft SQL Server 2008年集成服务 (SSIS 2008) 包。该软件包包含数据流任务。在低内存条件下的服务器上运行包时,发生访问冲突,然后 SSIS 2008 运行库进程崩溃。此外,您收到类似于以下的 SSIS 2008 应用程序日志中有关内存不足警告︰

事件名称︰ 付出

说明︰ 缓冲区管理器 10484760 字节,内存分配调用失败,但不能换出任何缓冲区,以减少内存压力。认为像 305 缓冲区和 295 被锁定。因为没有足够安装、 其他进程正在使用它,或过多的缓冲区被锁定或者没有足够的内存可供管道。



事件名称︰ 付出


说明︰ 缓冲区管理器已分配了 10485608 字节,即使已检测到内存压力,反复交换缓冲区的尝试已失败。



注意:运行 SSIS 2008 包的各种运行时流程是 DTExec.exe、 DTSHost.exe 或 DTSDebugHost.exe。包是在下的条件取决于运行的 SSIS 2008 包的过程。DTExec.exe 进程运行父包。DTSHost.exe 进程运行子数据包。DtsDebugHost.exe 进程的运行通过业务智能设计 Studio 进行调试的包。

原因

SSIS 2008 会通知服务器在内存不足的情况下。只有 128 兆字节 (MB) 为 256 MB 的内存不可用时发生内存不足情况。然后,SSIS 2008 运行库进程开始换到的临时文件夹的BufferTempStoragePath属性指定的数据流管道缓冲区。


在"症状"一节中提到的情况下,缓冲区中的数据复制内部到目标缓冲区被转换。例如,缓冲区中的数据被复制的 Merge Join 转换。此操作发生在内存不足的情况下服务器时。但是,转换不能识别线程转换外的突然换出目标缓冲区。因此,复制操作失败,然后将导致访问冲突。

解决方案

此修补程序在复制操作期间明确锁定目标缓冲区。此行为可阻止其他线程正在运行的复制操作时换出目标缓冲区。
此问题的修补程序首次发布累积更新 6 中的 SQL Server 2008 Service Pack 1。有关此累积更新包的更多信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章 ︰

977443累计更新 SQL Server 2008 Service Pack 1 包 6注意:因为版本具有累计性,所以每个新修补程序版本包含上一个 SQL Server 2008 修补程序版本随附的所有修补程序和所有安全修复程序。我们建议您考虑将应用包含此修复程序的最新的修补程序版本。有关详细信息,请单击下面的文章编号,以查看 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 中提供的修补程序。

解决方法

若要变通解决此问题,请解决内存不足的情况。为不同的计算机,可以触发此问题的内存量各不相同。通常,此金额是 64 MB 32 MB 之间。因此,我们建议您配置服务器到 SSIS 2008 分配 64 MB 以上的可用内存。

默认通知内存过低的资源的通知事件的可用内存量波动。 此可用内存范围从 32 MB 为 64 MB 每 4 千兆字节 (GB)。这个问题很难避免因为繁忙的生产服务器上的可用内存而不断变化。此外,内存可能会降低其他的各种原因。有关内存资源通知的详细信息,请访问下面的 Microsoft 开发人员网络 (MSDN) Web 站点︰

创建内存资源通知对象函数要减少此问题的出现频率,请使用下列方法之一。

方法 1

向计算机中添加更多物理内存。

方法 2

未运行的 SQL Server 实例的计算机上运行的 SSIS 2008 包。

方法 3

SSIS 2008 包运行时,设置为较小值的 SQL Server 2008年实例的最大服务器内存选项。 这种现象会增加可用的内存。

方法 4

退出应用程序占用大量内存,当运行包含数据流任务的 SSIS 2008 包。


方法 5

在一连串而不是减少内存使用的并行运行 SSIS 2008 包和数据流任务。


方法 6

使用"详细信息"部分的"如何监视 SSIS 的内存占用"小节中介绍的方法来解决内存不足的情况。然后,优化内存使用 SSIS 2008 年。

状态

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

详细信息

如何监视 SSIS 的内存消耗

监视测量的各种 SQL Server Integration Services 运行时进程,若要计算最大内存使用量峰值使用的内存


监视使用的不同的 SQL Server Integration Services (SSI) 运行时进程的峰值内存使用情况
专用字节数
计数器的
进程
在性能监视器中的对象。SSIS 运行时流程的示例包括 DTExec.exe 进程和 DTSHost.exe 进程。


当正在运行的 SSIS 数据包时,发现的最大值
专用字节数
计数器。当并行运行多个包,所有运行的进程,以获得内存使用的最大值的最大值相加。

监视外部进程查找高峰和低谷


通过监视 SQL Server 服务和 SSIS 服务之外的进程的峰值内存使用情况
专用字节数
计数器的
进程
在性能监视器中的对象。寻找那些可能会降低可用内存的 SSIS 高峰使用时间。例如,当多个用户使用远程桌面协议 (RDP) 连接到服务器或备份软件运行时都是高峰时间。

监视 SQL Server 内存使用情况,以发现高峰和低谷


如果"使用锁定页面缓冲池"消息不在最新的错误日志文件,
专用字节数
与 Sqlservr.exe 进程可能表明内存大小由 SQL Server 服务。



如果"使用锁定页面缓冲池"消息包含在最新的错误日志文件,使用
总的服务器内存 (KB)
计数器的
SQL Server︰ 内存管理器
要测量的 SQL Server 缓冲池的内存使用情况的性能对象。此外,使用
专用字节数
Sqlservr.exe 进程之外的缓冲池 (MemToLeave) 查找内存分配的计数器。总的服务器内存 (KB)计数器值和 MemToLeave 值的总和为安好的 SQL Server 使用的内存总量。



性能监控和任务管理器不显示满足以下条件之一为真时由这些缓冲池页面的内存︰

  • "
    内存中锁定页用户权限分配给 SQL Server 服务启动帐户。

  • "
    AWE
    启用内存。

注意:
当以下条件之一为真,
专用字节数
与 Sqlservr.exe 进程应指明不同的 SQL Server 实例的 SQL Server 服务使用多少内存。

监视窗口中的可用内存的最小值


若要监视在 Windows 中有多少内存不足,请使用下列方法之一︰

  • 使用
    可用的兆字节数
    在性能监视器中指示多少内存可用的计数器。

  • 视图
    可用物理内存 (MB) –
    在任务管理器的性能选项卡上的值。


    注意:
    在某些操作系统中,物理内存 (MB)-自由
    值被标记为物理内存 (K) – 可用值。

参考资料

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

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



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

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

有关软件更新术语的详细信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:

用于描述 Microsoft 软件更新的标准术语的824684说明

需要更多帮助?

需要更多选项?

了解订阅权益、浏览培训课程、了解如何保护设备等。

社区可帮助你提出和回答问题、提供反馈,并听取经验丰富专家的意见。

此信息是否有帮助?

你对语言质量的满意程度如何?
哪些因素影响了你的体验?
按“提交”即表示你的反馈将用于改进 Microsoft 产品和服务。 你的 IT 管理员将能够收集此数据。 隐私声明。

谢谢您的反馈!

×