SSIS 2008 运行库进程崩溃运行 SSIS 2008 包在低内存条件下时

文章翻译 文章翻译
文章编号: 977190 - 查看本文应用于的产品
Microsoft 分布 Microsoft SQL Server 2008 修复程序作为一个可下载的文件。因为该修补程序是累积性的因此每个新版本包含的所有修补程序和所有安全修复程序以前 SQL Server 2008 中包含的修补都程序版本。
展开全部 | 关闭全部

本文内容

症状

您具有 Microsoft SQL Server 2008 集成服务 (SSIS 2008) 包。对象包中包含一个数据流任务。当您在低内存情况下是在服务器上运行包时,发生访问冲突,然后 SSIS 2008 运行库进程崩溃。此外,您会收到类似于以下 SSIS 2008 应用程序日志中的有关内存不足的警告:
事件名称: OnInformation

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

事件名称: OnInformation

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


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

原因

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

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

解决方案

此修补程序可在复制操作过程中明确地锁定目标缓冲区。此行为可防止其他线程正在运行的复制操作时换出目标缓冲区。累积更新 6 SQL Server 2008 Service Pack 1 中第一次释放此问题的修复程序。有关此累积更新包的详细信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
977443累积更新包 6 的 SQL Server 2008 Service Pack 1
注意因为这些版本是累积性的因此每个新的修补程序版本包含的所有修补程序和所有安全修复程序以前 SQL Server 2008 中包含的修补都程序版本。我们建议您考虑应用最新的修补程序版本包含此修补程序。有关详细的信息请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
970365SQL Server 2008 生成之后 SQL Server 2008 Service Pack 1 发布发布
Microsoft SQL Server 2008 修复程序会创建特定 SQL Server 服务包。必须将 SQL Server 2008 Service Pack 1 修补程序应用到 SQL Server 2008 Service Pack 1 的安装。默认状态下,SQL Server service pack 中提供的任何修补程序包含在下一个 SQL Server 服务包中。

替代方法

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

通知低内存资源通知事件的可用内存的默认数量波动。 此可用的内存范围 32 MB 到 64 MB 的每个 4 千兆字节 (GB)。此问题,则很难防止,因为可用内存波动繁忙的生产服务器上。此外,内存可能会降低各种其他原因。有关内存资源通知的详细信息,请访问下面的 Microsoft 开发人员网络 (MSDN) 的网站:
Function that creates memory resource notification objects
要降低此问题的频率,请使用下列方法之一。

方法 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 (SSIS) 运行时进程计数器的 进程 在 $ 性能监视器中的对象。 SSIS 运行时进程的示例包括 DTExec.exe 进程和 DTSHost.exe 进程。

当运行 SSIS 包时,查找 专用字节数 的最大值计数器。并行运行多个包时, 加在一起运行以获得最大值的内存使用情况的所有进程的最大值。

监视外部进程查找峰值和谷

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

监视查找峰值和谷 SQL Server 内存使用情况

如果"使用锁定用于缓冲池页"消息不是最新的错误日志文件 Private Bytes 计数器 Sqlservr.exe 进程可以表明 SQL Server 服务所使用的内存量。

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

性能监视器和 $ 任务管理器不显示这些缓冲池页当满足下列条件之一为真时所使用的内存:
  • 在内存中锁定页 用户权限分配给 SQL Server 服务启动帐户。
  • AWE 内存处于启用状态。
注意 当这些条件之一为真时,专用字节数 将计数器 Sqlservr.exe 过程应表明 SQL Server 服务为各种 SQL Server 实例所使用的内存量。

监视在 Windows 中的可用内存的最小值

若要监视的多少内存,在 Windows 中,使用下列方法之一:
  • 使用 可用 MBytes 中表示的内存量是可用的性能监视器计数器。
  • 性能 选项卡的任务管理器值的 物理内存 (MB) – 忙 的视图。

    注意 在某些的操作系统系统 物理内存 (MB) – 忙 值标记为 物理内存 (K) – 可用 值。

参考

有关 SQL Server 增量的服务模型信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
935897一个增量的服务模型是可从 SQL Server 团队提供报告的问题的修补程序


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


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

属性

文章编号: 977190 - 最后修改: 2010年1月29日 - 修订: 1.1
这篇文章中的信息适用于:
  • Microsoft SQL Server 2008 Developer
  • Microsoft SQL Server 2008 Enterprise
  • Microsoft SQL Server 2008 Standard
  • Microsoft SQL Server 2008 Workgroup
关键字:?
kbmt kbexpertiseadvanced kbfix kbsurveynew kbqfe kbhotfixserver KB977190 KbMtzh
机器翻译
注意:这篇文章是由无人工介入的微软自动的机器翻译软件翻译完成。微软很高兴能同时提供给您由人工翻译的和由机器翻译的文章, 以使您能使用您的语言访问所有的知识库文章。然而由机器翻译的文章并不总是完美的。它可能存在词汇,语法或文法的问题,就像是一个外国人在说中文时总是可能犯这样的错误。虽然我们经常升级机器翻译软件以提高翻译质量,但是我们不保证机器翻译的正确度,也不对由于内容的误译或者客户对它的错误使用所引起的任何直接的, 或间接的可能的问题负责。
点击这里察看该文章的英文版: 977190
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