sql server语言 - SSIS查找失败



在ssis数据流中有一个查找组件,它查找一个包含1800万条记录的表。我已将查找配置为全缓存。

   Default buffer size :20485760 
Default Buffer Max rows: 100000 
The lookup join is based on an ID column of varchar(13)type

给出如下所示的错误。什么查找配置适合缓存这么多记录

Error: The buffer manager cannot write 8 bytes to file "C:UsersusrnameAppDataLocalTemp16DTS{B98CD347-1EF1-4BC1-9DD9-C1B3AB2B8D73}.tmp". There was insufficient disk space or quota.

如果我使用没有缓存的查找,性能会有什么不同?我确实明白,在全缓存模式下,数据在预执行阶段之前缓存,不必回到数据库。这个全缓存内存占用了大量内存,并为数据流增加了额外的启动时间。我的问题是我必须设置什么配置才能在完全缓存模式下处理大量数据

如果查找表有数百万条记录(并且它们不适合完整的缓存),该如何解决

使用Merge Join组件。对连接键上的两个输入进行排序,根据您的规范指定内部/左/全连接。使用不同的输出来获得功能,如查找组件。

Merge Join通常在较大的数据集上表现更好。

您可以将SSIS中的Buffertempstoragepath属性设置为Blobtempstoragepath, Buffertempstoragepath将使用temptmp系统变量。因此,如果tmp变量在您的情况下不能容纳大型数据集,则使用查找转换。因此,大型数据集将使用驱动器空间,并将为您执行任务。

相关内容

  • 没有找到相关文章

最新更新