2016-08-22 8 views
1

私はSQLデータベースにXMLデータをロードするssisデータフロータスクを持っています - 60,000以上のXMLファイル。私の最初の数千のXMLファイルは、テーブルに速くロードされます。しかし、時間の経過とともに、ローディング速度が大幅に低下します。 最初の10kファイルは約10分で読み込まれます。次の10kで25分かかると、パフォーマンスが低下します。すべての60k +ファイルがロードされるまでには、約4時間かかります。sqlパフォーマンス低下 - 読み込み60,000 xmlファイル - ssis - xmlソース

パフォーマンスをチェックして、初期ファイルと同じ速度でファイルをロードする方法はありますか。

私はC#でも一括コピーを試みました。しかし、そこにも問題が存在します。私のパフォーマンスを向上させるための方法はどれですか?

+0

SQL Serverから直接XMLファイルにアクセスできますか? – Shnugo

答えて

0

あなたのコードの一部で、ヒントやアイデアを簡単に伝えることができます。

私はこの問題がメモリ関連であると信じています。 SQLデータベースに入れる前に、すべてのファイルをメモリに読み込んでいますか? タスクマネージャを確認してください!メモリ使用量が増加し続けている場合は、メモリ使用量に問題があります。

ファイルの保存方法や名前はわかりませんが、一度に1-5000のように作業しないと、移動して次の作業を行うことができますか?

+0

私はForEachコンテナを持っています。これはすべてのファイルをプルして、ファイルごとにロード先のテーブルにロードします。 Foreachには、XMLソースとoledbの宛先があるデータフロータスクがあります。 –

0

単一のDFTの代わりに複数のDFTを使用してください。それぞれを約5k/10kに制限します。うまくいけば、これは時間枠が小さくなるでしょう。

また、時間の差は表の索引付けによるものかもしれません。インデックスを削除します。レコードをロードします。ロードが完了したら、索引付けを再適用してください。索引付けされた表のレコードセットを照会するのは高速です。しかし、インデックス付きのテーブルにInsertを実行すると、あまりにも60kレコードも時間がかかるプロセスです。

関連する問題