私はチャンクサイズを1000に設定し、そのジョブのリーダーはJpaPagingItemReader
です。チャンクサイズとページサイズの差Spring Batch
私はページサイズを20
に設定しました。これは、1000のアイテムのすべてのチャックは、読者がdb 20の項目から取り出さなければならないことを意味しますか?
これらの違いは何ですか?
私はチャンクサイズを1000に設定し、そのジョブのリーダーはJpaPagingItemReader
です。チャンクサイズとページサイズの差Spring Batch
私はページサイズを20
に設定しました。これは、1000のアイテムのすべてのチャックは、読者がdb 20の項目から取り出さなければならないことを意味しますか?
これらの違いは何ですか?
あなたの現在の設定では、すべての読み込み項目がライターになる場合(つまり、プロセッサでフィルタリングされない場合)、チャンクサイズに達するためには1000/20 = 50のデータベース読み込みが必要になります。ライターに電話をしてください。
春のバッチでは、処理されたアイテムがチャンクサイズに達するまでメモリ内に保持され、アイテムの保持にはコストがかかります。
あなたの現在の設定では、データをメモリに保持していて、不要なデータベース呼び出しを行っていますが、これらの両方を削減したいと考えています。
あなたの設定は、読者のページ・サイズをチャンク・サイズ/コミット間隔以上に増やす必要があるため、読み込み後のデータが小さな小さなチャンクで処理された後、再びデータベースを読み込むようにする必要があります。
読者のページ・サイズは、データベース・コールを最小限に抑えるための概念ではありません(この概念はスプリング・バッチの概念ではなく、読者固有のものです。コンセプトは画像には出ません)、チャンクサイズは処理されたデータを小さな小さな塊でコミットして、メモリのフットプリントを減らします。
はいはい、コミット間隔によって、チャンク内で処理されるレコードの数が決まります。
データベースページサイズは、データベースから取り出すレコードの数を決定します。これは、バッファからどれくらいの大きさのバッファに、データベースからデータを取得するためにドライバーがどのように行うかをv/sにするという最適化の設定です。