セットアップ:私は非常に大きなSSISパッケージを持っています。これは、さまざまなフラット ファイルを並べ替えて、日付を除いてファイル定義を T に適合するテーブルにそれらをスローします。日付は次の形式で表示されます:"MM/dd/yyyy HH:mm:ss.ffffff."
もちろん、dbtimestampの場合、これを に変換する必要があります"yyyy-MM-dd HH:mm:ss.ffffff"
。特定のファイルには、少なくとも 2 つの日付があります。作成および更新されました。いくつかの私はもっと持っています。
問題: 私が解析した 26 個のファイルのうち、1 つは他のファイルよりも特に大きくなっています。場合によっては、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))
何か案は?