0

リアルタイムでデータを取得し、データベースにレコードを追加するプロセスがあります。Extract Transform Load (ETL) プロセスを実行するために、SQL Server 2008 Integration Services を使用しています。FTP サイトから約 50 個のファイルをダウンロードして処理し、ファイルをアーカイブします。

問題は、ファイルが非常に小さく (約 10 行)、処理コードがかなり単純であるにもかかわらず、ファイルごとに処理に約 17 秒かかっていることです。マシンの負荷を見ると、CPU バウンドであり、ネットワーク、ディスク、またはメモリに多くのトラフィックはありません。

SSIS は、実行されるたびに C# コードを再コンパイルしている可能性があると思います。誰かが同様の問題に遭遇しましたか?または、同様のプロセスを問題なく使用しましたか?

dtsx パッケージのプロファイリングを可能にするツールはありますか?

4

2 に答える 2

3

SSIS 2008 を使用しているため、スクリプト タスクは常にプリコンパイルされています。

于 2010-02-01T20:20:04.317 に答える
1

そもそもスクリプト タスクでよろしいですか?

私は、多くの辞書を作成し、非常に複雑なビジネス ロジックに従って入力値がさまざまな辞書にあるかどうかを確認し、翻訳やその他の作業を行う、大規模なスクリプト タスクをいくつか持っていました。各行メソッドではなく、タスクの初期化で一度辞書を作成することを購入すると、予想どおり、処理が大幅に改善されました。しかし、これは非常に特殊なケースでした。

パッケージ コンポーネントは (各制御フロー コンポーネントが実行される最初または直前に) 検証されますが、これは避けられないオーバーヘッドです。

SSIS 内の 1 つのループですべてのファイルを処理していますか? その場合、データ フローの検証を繰り返さないでください。

于 2010-02-01T23:23:17.477 に答える