0

7 列の3 Lakh (300,000)レコードを含むテキスト ファイルがあります。ステージング テーブルにデータを挿入し、そこから複数のテーブルにデータを挿入するビジネス ロジックを実行します。

ファイルは次のようになります。

01|000001111|27/04/2011|12/01/2012|ISDF|AB|1      
02|000002222|09/01/2010|29/01/2010|CfGH|CV|1      
03|000003333|19/07/2005|09/07/2007|TBRF|CC|1 

ステージング テーブルは と呼ばれStagetableます。

フラット ファイル ソースと OLEDB 宛先を使用していますが、データをステージング テーブルに挿入するだけで 7 時間以上かかります。パフォーマンスを改善する必要があります。

初めてSSISパッケージを使用しています。

パフォーマンスを改善する方法についての提案は素晴らしいでしょう。

ありがとうプリンス

4

2 に答える 2

0

3ラックはわずか300000で、フィールド/行も特に広く見えません。これは、問題を引き起こすにはかなり小さい数です。

ボトルネックがどこにあるのかを突き止めてみてください - ソースかデスティネーションか? ソースがボトルネックである場合は、ファイルを分割し、stg_1、stg_2 などの別個の同一のステージング テーブルにステージングしてから、それらを並列で読み込むことができます。

宛先がボトルネックの場合は、バランス データ ディストリビューターを使用して、それらを異なるステージング テーブルに配置できます。

繰り返しますが、これは 300K 行だけではやり過ぎのようです。

ステージング テーブルにインデックスがないことを確認してください。皆さんが試したこと、効果があったこと、そしてどのように解決したかをぜひお聞かせください。

于 2013-03-01T19:02:24.533 に答える
0

以下が役に立ちます。

-ネットワーク遅延を回避するために、処理する前にファイルをターゲットの近く (つまり、同じボックス上) に移動します。

-Visual Studio ではなく、SQL Server 内からパッケージをデプロイして実行します

-読み込みを高速化するために、OLE DB ではなく SQL Server の宛先を宛先として使用する

-宛先コンポーネントの拘束チェックをオフにします

- 負荷のかかるトリガーがターゲット テーブルにないことを確認します。

-変換を実行する必要がない場合は、一括挿入タスクの使用を検討してください

于 2012-04-12T12:07:52.500 に答える