私のパッケージには、約120000のレコードを持つソーステーブルと、キャッシュモードのないルックアップ変換と宛先テーブルがあります.ターゲットと一致しないソースから同じターゲットテーブルにデータを渡しています.パッケージを実行すると、一度に 9000 レコードのみがルックアップに移動するだけです。宛先に挿入されると、他の 9000 レコードがルックアップに移動して続行します。この 9000 レコードのみの理由は何ですか?defaultbuffermaxrows と defaultbuffersize を異なる値に変更してみました、しかし、一度に移動するのは 9000 レコードのみです。
質問する
969 次
1 に答える
3
OLEDBの宛先には、プロパティがありますROWS PER BATCH
。これを使用して、バッチごとに転送する行数を変更できます。
ここでは、9000レコードのmovinfが原因で、デフォルトの最大行数が10,000であることがわかります。
MSDNから
DefaultBufferSizeプロパティを設定して、タスクが使用するバッファーのデフォルトサイズを定義し、DefaultBufferMaxRowsプロパティを設定して、各バッファーの最大行数を定義します。デフォルトのバッファサイズは10メガバイトで、最大バッファサイズは100メガバイトです。デフォルトの最大行数は10,000です。
編集(あなたのコメントに基づく):
cache
のオプションを設定しているため、機能していませlookup
んno cache
。希望の行またはカスタム行(>デフォルトの行)を挿入/フローするには、以下の手順に従います。
- ルックアップ設定で、をに設定
cache mode
しFull cache
ます。 - ルックアップでは。を使用します
OLEDB Connection manager
。 - 上記のように
OLEDB Destination
セットで。ROWS PER BATCH
- DataFlowプロパティで、
Default BufferMaxRow
を目的の行に設定します。
正常に動作します。
于 2012-06-01T07:47:59.130 に答える