我已经将sql server属性中的内存设置更改为低内存.我已经将缓冲区临时路径更改为系统的特定位置.但是为什么包失败并且消息内存不足?.如果我们设置缓冲区临时值和blob temp,数据应该交换到那个临时位置吗?那么如果它失败了,缓冲区temp的用途是什么?
有点相关SSIS 2005中BufferTempStoragePath的默认文件路径位置是什么?特别是,从simon代理服务帐户中读取bimonkey中有关磁盘上这些位置的可访问性的链接文章.
一般来说,当您的包报告内存不足时,这是由于使用完全阻塞转换和查找任务撤回过多数据.如果您的包大量使用阻塞转换,请尝试将工作卸载到源系统.如果要责备查找,请尝试在查询中更具选择性.不要拉回整个桌子,只需拉动你需要的柱子.如果这不够具有选择性,您可以尝试使用where子句过滤该数据集(我只需要当前年份的数据等).如果失败,请将查找从完全缓存模式切换到部分缓存或不缓存.对于通过的每一行,没有缓存将导致对源系统的一次性查询.它将没有内存,它在2行前运行完全相同的查询.部分缓存通过将X MB数据保留在内存中来解决这一难题.如果您想了解有关如何减少内存使用量的更多详细信息,请发布您的包的外观截图.另请注意,BufferTempStoragePath等设置是每个数据流,因此如果包中有多个数据流,则需要配置每个数据流.
数据流的体系结构使得数据被读入内存缓冲区,并且这些缓冲区的地址被传递给各种任务.而不是每个任务需要分配给它们的大量内存来保存通过它们的数据,它们都在相同的共享内存集上工作.将内存从任务复制到任务在内存消耗方面会很慢并且非常昂贵.
有序言说,BufferTempStoragePath和BlobTempStoragePath是什么?任何时候你拉大对象类型(N/VARCHAR(最大值),XML,图像等)到数据流,这些数据是不保存在像本地类型的内存缓冲区.而是将其写入磁盘,并指向该地址的指针放入内存缓冲区.当您的数据流任务仍有工作要做但您也可以使用BufferTempStoragePath
| 归档时间: |
|
| 查看次数: |
559 次 |
| 最近记录: |