バッチサイズを大きくしても、実際にはパフォーマンスが向上しないと聞きました
何が最適ですか?
Insert を呼び出してドキュメントを 1 つずつ挿入すると、ドキュメントごとにネットワーク ラウンド トリップが発生します。InsertBatch を呼び出してドキュメントをバッチに挿入すると、ドキュメントごとではなく、バッチごとにネットワーク ラウンド トリップが発生します。InsertBatch は、ネットワーク ラウンド トリップの回数を減らすため、Insert よりも効率的です。
1,000,000 のドキュメントを挿入する必要があると仮定すると、さまざまなバッチ サイズのネットワーク ラウンド トリップの数を分析できます。
したがって、10 という小さなバッチ サイズでもネットワーク ラウンド トリップの 90% がすでに排除されており、100 のバッチ サイズではネットワーク ラウンド トリップの 99% が排除されていることがわかります。
これは、バッチ サイズが大きくなるとメッセージ サイズも大きくなるという事実を無視しているため、やや単純化された分析ですが、多かれ少なかれ正確です。
最適なバッチ サイズは1 つではないと思います。バッチが大きいほどパフォーマンスが高いと言えますが、バッチごとに 10 ~ 100 個のドキュメントがあると、バッチが大きいほどパフォーマンスがわずかに向上します。