?
? ? ? ??下面用例子来说明分页查询的效率。首先构造一个比较大的表作为测试表:
? ? ? ? 比较两种分页方法的区别:
? ? ? ? 78289次逻辑读。
? ?? ? 5次逻辑读。
二者执行效率相差很大,一个需要78289次逻辑读,而另一个只需要5个逻辑读。观察二者的执行计划可以发现,两个执行计划唯一的区别就是第二个查询在COUNT这步使用了STOPKEY,也就是说,Oracle将ROWNUM <= 20推入到查询内层,当符合查询的条件的记录达到STOPKEY的值,则Oracle结束查询。
因此,可以预见,采用第二种方式,在翻页的开始部分查询速度很快,越到后面,效率越低,当翻到最后一页,效率应该和第一种方式接近。
? ? ? ??此时,有78289次逻辑读。