大きなバッチサイズで実際に追加のパフォーマンスが得られないと聞きましたmongodb C#ドライバのInsertBatchメソッドで最適なバルクアイテム数はどのくらいですか?
どのようなものが最適ですか?
大きなバッチサイズで実際に追加のパフォーマンスが得られないと聞きましたmongodb C#ドライバのInsertBatchメソッドで最適なバルクアイテム数はどのくらいですか?
どのようなものが最適ですか?
ドキュメントを挿入するために一度に1つずつ挿入を呼び出すと、ドキュメントごとにネットワーク往復があります。文書をバッチで挿入するためにInsertBatchを呼び出すと、各文書ではなく、各バッチごとにネットワークラウンドトリップが行われます。 InsertBatchはInsertよりも効率的です。これはネットワークラウンドトリップの回数を減らすためです。
することで、異なるバッチサイズのためのネットワーク・ラウンドトリップの数を分析することができ、あなたは1,000,000の文書を挿入しなければならなかったと仮定します
したがって、バッチサイズが10であっても、ネットワークラウンドトリップの90%がすでに排除されており、バッチサイズ100によってネットワークラウンドトリップの99%が排除されていることがわかります。
これは、バッチサイズが大きくなるにつれてメッセージサイズは大きくなるが、正確さは多少なりとも厳密ではないという事実を無視しているため、幾分単純化された分析です。
のいずれかがありません。最適なバッチサイズです。大きなバッチはパフォーマンスが良いと言えますが、バッチあたり10〜100のドキュメントがあれば、バッチのサイズが大きくなるとパフォーマンスは大幅に改善されます。
あなたはそれを聞いたことがありますか?うーん、私は通常、16メガ・スペース(最大)に収まる何かを言うでしょうか? – Sammaye
jiraで問題が発生しました。コメントに記載されています。https://jira.mongodb.org/browse/CSHARP-725 – Serdar
私は、あなたが16メガロバートが言っているのは、大量のバッチを助けるということは、データがどれほどきれいであるかによって決まります。エラーのためにクライアントに常に戻っている場合は、小さなバッチを実行する方がパフォーマンスが向上します。ここで最適な量については:うーん、多分バッチで100? – Sammaye