2

SQL Server データベースで大量のデータを扱っています。
現在、パッケージの実行には数時間かかります。
パッケージの実行時間を最適化する方法/テクニックはありますか? SSIS Parallelism
について知っています。 他に最善の方法はありますか?

編集:
2 億以上の記録を扱っています。
SQL サーバー データベースは、(同じサーバー内の) データ ソースと宛先です。派生列、条件付き分割、マルチキャスト、データ変換、ルックアップ、OLEDB コマンド、OLEDB 宛先、OLEDB ソース、マージ、マージなどの変換を使用しました。結合、ソーター、集約変換。

4

4 に答える 4

2

SSIS の最適化の良い例:

  1. SSIS 最適化 1

  2. SSIS 最適化 2

  3. SSIS 最適化 3

  4. SSIS 最適化 4

于 2012-09-11T16:54:59.447 に答える
1

データの並べ替えが必要なタスクを見てください。これらは通常、処理速度を低下させるタスクです。たとえば、マージ結合を使用する代わりに、結合を使用したクエリであるデータソースを使用します。

于 2012-09-10T14:57:59.253 に答える
1

SSIS でさまざまなタイプの変換を使用することの意味に関する非常に優れた記事: SSIS の 非ブロック、半ブロック、および完全ブロック コンポーネント

基本的に、パッケージでソートまたは集約を使用する場合、行が次のコンポーネントに渡される前に、すべての行がそれらによって消費されるまで、それらのコンポーネントで完全に停止します。これらは、データフローで他に選択肢がない場合にのみ使用してください。

Merge や Merge Join などのセミブロッキング コンポーネントは、通過する行の新しいバッファーを作成するため、バッファーがメモリ内に作成される間、オーバーヘッドが発生します。コードではこれを慎重に使用してください。

ノンブロッキングにより、スループットを最大化できます

于 2012-09-18T13:23:01.233 に答える
0

セミブロッキングコンポーネントは避けてください。

マージ、ソーター、集計関数にSQLタスクコンポーネントを使用する

OLEDB変換先のバッチごとの行とコミットサイズに10000を設定します。

OLE DB変換先でデータアクセスモード(テーブルまたはビューの高速読み込み)を設定します。

于 2012-12-05T09:02:28.913 に答える