我需要使用一些使用OJDBC的遗留代码。从Web进行查询并使用servlet我们必须搜索并显示满足条件的最多1000行。因此,无论DB中的实际行数是多少,都会以特定的排序顺序返回最多1000行。这是通过在正在执行的语句上设置fetchSize来完成的。我读到fetchSize只是对DB的提示,它也可能返回超过这些行数。这可能是我认为的原因,因为在计数超过1000时迭代结果集时遗留代码中使用了中断。
现在需要更新此功能以进行分页。我知道按照AskTom's文章中的描述使用ROWNUM进行分页。
但作为此活动的一部分,我还需要验证并证明性能不受影响。为此,我想知道当从OJDBC设置并执行fetchSize时后端(Oracle)实际发生了什么。是否可以将此OJDBC转换为可以直接运行以检查性能的精确查询?如果fetchSize不保证只返回指定数量的行,它是否返回满足条件的所有行?
感谢您的帮助。