我有按日期范围返回报告的查询。如果日期范围很大,可能会返回 50k 行。如果日期范围很小,则可以返回 10 条记录。我发现将 fetch size 设置为 1000,当返回 50k 行时会大大加快执行时间。但是在返回 10 行时将其设置为 1000 会减慢速度并使用过多的内存。这只是一个示例,我有许多查询根据各种条件(正在运行的作业类型等)返回很少或很多行。
理想情况下,如果可以在执行查询之后(但在返回行之前)自动设置,那就太好了。
有一个更好的方法吗?
我正在使用 org.springframework.jdbc.core.support.JdbcDaoSupport.SimpleJdbcDaoSupport getJdbcTemplate().setFetchSize(1000);