0

我们有一个实时获取数据并将记录添加到数据库的过程。我们使用 SQL Server 2008 集成服务来运行我们的提取转换加载 (ETL) 过程。我们从 FTP 站点下载大约 50 个文件,对其进行处理,然后将文件归档。

问题是处理每个文件大约需要 17 秒,即使文件非常小(大约 10 行)并且处理代码相当简单。查看机器上的负载,它受 CPU 限制,网络、磁盘或内存上的流量并不多。

我怀疑 SSIS 可能会在每次运行时重新编译 C# 代码。有没有人遇到过类似的问题?或者您是否使用过类似的过程而没有问题?

是否有任何工具可以让我们分析 dtsx 包?

4

2 回答 2

3

由于您使用的是 SSIS 2008,因此您的脚本任务始终是预编译的。

于 2010-02-01T20:20:04.317 回答
1

您确定首先是脚本任务吗?

我有一些广泛的脚本任务,构建了许多字典,根据疯狂复杂的业务逻辑查看传入值是否在各种字典中,并进行翻译或其他工作。在任务初始化中而不是在每一行方法中购买一次构建字典,处理得到了极大的改进,正如您所料。但这是一个非常特殊的情况。

将验证包组件(在开始时或在每个控制流组件运行之前),这是您无法摆脱的一些开销。

您是否在 SSIS 中的单个循环中处理所有文件?在这种情况下,不应重复数据流验证。

于 2010-02-01T23:23:17.477 回答