设置:我有一个非常大的SSIS包,它对许多不同的平面文件进行分类,并将它们放入适合文件定义的表格中...除了日期。日期以以下格式出现:"MM/dd/yyyy HH:mm:ss.ffffff."
当然,对于dbtimestamp,这需要转换为"yyyy-MM-dd HH:mm:ss.ffffff"
. 在任何给定的文件上,我至少有 2 个日期;创建和更新。在一些我有更多。
问题:在我解析的 26 个文件中,一个比另一个特别大。在某些情况下,它可以是 40+ MB。它以前似乎运行良好,但通过派生 3 个日期的派生列组件运行现在非常慢。解析约 90,600 行大约需要30 分钟。
我正在观察正在执行的数据流,瓶颈看起来非常像派生列。如果它们碰巧存在并且不存在,我会报告所有错误行,所以我知道它不会在行上窒息......我只是无法弄清楚什么需要这么长时间。CPU在执行时会达到 100%(不足为奇),但内存保持在 12% 的低位。
以下是每行 3 个日期中的每个日期发生的确切转换:
(DT_DBTIMESTAMP)(SUBSTRING(COLUMN,7,4) + "-" + SUBSTRING(COLUMN,1,2)
+ "-" + SUBSTRING(COLUMN,4,2) + SUBSTRING(COLUMN,11,14))
有任何想法吗?