0

SQL Azure に挿入する必要がある多数のレコード (約 2000) をもたらすいくつかの従業員セグメンテーション タスクがあります。レコード自体は非常に小さく、約 4 つの整数です。Azure ワーカー ロールがセグメンテーション タスクを実行し、結果の行を SQL Azure テーブルに挿入します。このようなタスクが複数 (それぞれ約 1000 ~ 2000 行) キューにある可能性があるため、これらの挿入はそれぞれ非常に高速に実行する必要があります。

ローカル マシンを使用した SQL Azure へのタイミング テストにはかなりの時間がかかりました (1000 回の挿入で約 2 分)。これは、ネットワークの遅延が原因である可能性があります。worker ロールからの挿入ははるかに高速であると想定しています。

ただし、エンティティ フレームワークは一括挿入がうまくできないため、SQLBulkCopy を使用することを考えていました。バッチ サイズが 1000 の場合、SQLBulkcopy を使用すると、クエリが調整されますか? 推奨されるアプローチはありますか?

4

1 に答える 1

2

Bulk Copy API は目的を完全に果たし、非常に劇的なパフォーマンスの向上をもたらすはずです。

バッチ サイズが 2000 の 1,000 万件のレコードを Azure データベースに挿入することをテストしましたが、ローカル マシンから実行した場合、バッチあたり約 10 秒のパフォーマンスでスロットリングは発生しませんでした。

于 2012-07-18T17:54:46.310 に答える