在SSIS中,数据流连接需要很长时间
问题描述:
我是SSIS的新手...... 我升级了一个包(从2008到2010 Visual Studio),它连接到一个平面文件并将数据转储到一个新表中。 我每5分钟获得约25个文件。 问题是,在包中,它的需要超过15秒才能连接到一个单独的文件,但传输速度很快。由于速度很慢,因此有很多文件未处理。 我的问题是我该如何让它更快?在SSIS中,数据流连接需要很长时间
我以为也许升级是一个问题,所以我做了一个全新的包。然后我尝试连接两个数据库,即使连接时间相同。
答
您所描述的内容听起来不像连接问题,但更多的是读取并加载到缓冲区中的文件的开始。需要考虑的事情是:
- 文件(网络IO)的位置 - 保持本地的SSIS服务,如果可能的,或者将其复制到SSIS服务器通过数据流
- 量运行之前可用内存SSIS
- 的内存分配给数据的一些基本调整步骤将是量流
: - 确保平面文件连接上的列大小是准确的(而不是全部设置为字符串(500)或类似的东西)。这对一次处理多少行具有直接影响 - 增加数据流中的DefaultMaxBufferRows和DefaultBufferSize以增加每个缓冲区的行数 - 确保将oledb目标设置为快速加载。如果您正在加载堆,请确保tablock处于打开状态。如果您正在加载聚簇索引并且有多个流将更新同一个表,请确保tablock未打开,否则您将自行阻止。在这种情况下,我会考虑重新设计顺序加载或使用多文件源的方法。
如何判断文件的连接时间?您是否在讨论在调试模式下开始在缓冲区中看到行之前需要多长时间?数据流中是否还有其他内容,即查询,还是仅仅是一个平面文件源和oledb目的地? – 2014-11-06 12:50:09
运行程序包时,在调试模式下需要大量时间才能进入数据流。没有查找,只是平面文件src和oledb目的地。如果您需要更多信息,请问我......在这种情况下,我不知道有多少信息是足够的!尽快解决这个问题! :X – techno 2014-11-07 06:19:15