Balanced Data Distributor (BDD)はSQL Server Integration Services (SSIS)向けの新しいマルチスレッドデータフロー変換ツールだ。データを複数の出力に分散させることでマルチコア、マルチプロセッサ環境で高性能な処理を実現する。
Balanced Data Distributorは並列処理の利点を生かして高速にデータを変換する。したがって、シングルプロセッサ構成では威力を発揮しない(実際SSISのスクリプトコンポーネントを使って素直にインサートした方が高性能だ)。Microsoftが勧めるのは特定の環境での特別な使い方だ。適切な利用シナリオを下記の条件を含む。
- 移行したい巨大なデータがある
- そのデータは高速に読み取れる(例えばフラットなファイル)が変換、移行処理ではボトルネックがある
- 移行元データの順序は維持されなくてもいい(BDDはデータをほぼ同じ大きさのバッファに分割してしまう)
- 移行先は均質でタイプも同じ
Boyan Penev氏はブログでBDDとスクリプトコンポーネントを使ったインサートとBDDとの性能の比較を行っている。ローカルのSQL Serverでは35%から45%性能が改善された。SQL Server性能チームはこのツールの利用方法についてのベストプラクティスを紹介している。
Balanced Data Distributorは現在SSIS 2008でのみ利用できる。