日付範囲別にレポートを返すクエリがあります。日付範囲が大きい場合、50,000 行が返されることがあります。日付範囲が非常に小さい場合、10 件のレコードが返される可能性があります。フェッチ サイズを 1000 に設定すると、5 万行が返されるときに実行時間が大幅に短縮されることがわかりました。ただし、10 行が返されたときに 1000 に設定すると、速度が低下し、過剰なメモリが消費されます。これはほんの一例です。さまざまな条件 (実行中のジョブの種類など) に基づいて、少数または多数の行を返す多くのクエリがあります。
理想的には、クエリが実行された後 (ただし、行が返される前) にこれが自動設定されると便利です。
これを行うより良い方法はありますか?
私は org.springframework.jdbc.core.support.JdbcDaoSupport.SimpleJdbcDaoSupport getJdbcTemplate().setFetchSize(1000); を使用しています。