2017-01-26 20 views
0

私は約700,000行のテーブルを持っています。それは11の列を持ち、そのうちの1つはvarchar(max)列であり、xmlデータを持ちます。 このデータをあるサーバーから別のサーバーに転送する必要があります。私はSSISパッケージでフォローしました。 単一のデータフロータスクで最初に100,000を取得し、1回のデータフロータスクを追加するたびに(10 MB - 100 MB)defaultbuffersizeを変更し、lowとhighのdefaultbufferRowを変更しました。 しかし、長い時間テーブルを照会するが、データをすばやく書き込むことができます。私はvarchar(max)カラムを削除してみましたが、5分もかかっていませんでした。データ転送の速度を向上させる方法SSISで

したがって、varcharカラムを追加すると約13時間かかります。

私はデータセットでも.NETコードを試した後、bulkinsertを使用してTPLを使用して、すべてのプロセスコードを使用しました。しかし、私は微妙な違いを見ることができません。

ご協力いただければ幸いです。

答えて

1

700000は多くの行ではありません。 本当にvarchar(max)が必要ですか len()は8000を超えていますか? - それをvarchar(8000)としてキャストした場合、バッファサイズは小さくなります。 ネットワークI/Oが問題になりますか? 私たちのデータをヨーロッパからヨーロッパへ移動していますか?その場合は、ネットワークパケットサイズを33kに増やしてください。 現代のハードウェアでは、このデータを転送するのに1時間以上かかることはありません。私は10分を願っています! インデックスや制約のない空のテーブルに転送するのに適したテストです。 これが速ければ、probがどこにあるのかを確認する必要があります。

関連する問題