在SSIS中,数据流连接需要花费大量时间

时间:2014-11-06 07:01:45

标签: ssis

我是SSIS的新手...... 我升级了一个包(从2008到2010 Visual Studio),它连接到一个平面文件并将数据转储到一个新表中。 我每5分钟收到大约25个文件。 问题是,在包中,连接到一个文件需要超过15秒,但传输速度很快。由于速度很慢,因此有大量文件未经处理。 我的问题是如何让它更快

我认为升级是一个问题,所以我做了一个全新的包。然后我尝试连接两个数据库,即使连接时间相同。

1 个答案:

答案 0 :(得分:0)

您所描述的内容听起来并不像连接问题,但更多的是文件的开头被读取并加载到缓冲区中。需要考虑的事情是:

  • 文件的位置(网络IO) - 如果可能,将其保留在SSIS服务的本地,或者在通过数据流运行之前将其复制到SSIS服务器
  • SSIS可用的内存量
  • 分配给数据流的内存量

一些基本的调整步骤是:   - 确保平面文件连接上的列大小准确(并且不是全部设置为字符串(500)或类似的东西)。这会直接影响一次处理多少行   - 增加数据流中的DefaultMaxBufferRows和DefaultBufferSize以增加每个缓冲区的行数   - 确保将oledb目标设置为快速加载。如果要加载堆,请确保启用了tablock。如果要加载聚簇索引并且有多个流将更新同一个表,请确保未启用tablock,否则您将自行阻止。在这种情况下,我会考虑重新设计顺序加载或使用多文件源的方法。