分配 10484320 字节时缓冲区失败

2021-12-30 00:00:00 etl sql-server ssis ssis-2012

当我运行以下包时,它会成功完成每个任务,直到加载到写入 0 行的目标位置.我减少了缓冲区大小,但仍然没有用.关于如何解决这个问题的任何线索.我收到以下错误消息

When I run the following package, it completes every task successfully until loading into the destination where 0 rows are written. I reduced the buffer size but still didn't work. Any clue on how to solve this. I get the following error messages

分配 10484320 字节时缓冲区失败"、SSIS 错误代码 DTS_E_PROCESSINPUTFAILED"

"A buffer failed while allocating 10484320 bytes", "SSIS Error Code DTS_E_PROCESSINPUTFAILED"

推荐答案

此错误意味着您的系统在缓冲池达到其限制之前内存不足.您需要查看两个数据流属性:

This error means your system is running out of memory before the buffer pool has reached it's limit. There are two data flow properties you want to look at:

  • DefaultMaxBufferSize - 设置缓冲区的最大内存使用量
  • DefaultBufferMaxRows - 设置要缓冲的最大行数
  • DefaultMaxBufferSize - Sets the maximum memory usage for buffer
  • DefaultBufferMaxRows - Sets the maximum rows to buffer

如果您降低 DefaultBufferMaxRows,它可能足以避免该问题而不会过于具体.如果您确切地知道有多少内存可用于缓冲区(或关闭),您可以将 DefaultMaxBufferSize 降低到刚好低于可用内存的值.

If you lower the DefaultBufferMaxRows it will probably be enough to avoid the issue without getting too specific. If you know exactly how much memory you have available for the buffer (or close), you could instead lower the DefaultMaxBufferSize to just below your available memory.

相关文章