日期:2014-05-16  浏览次数:20512 次

Oracle分页查询详解(二)

?

? ? ? ??下面用例子来说明分页查询的效率。首先构造一个比较大的表作为测试表:


? ? ? ? 比较两种分页方法的区别:


? ? ? ? 78289次逻辑读。


? ?? ? 5次逻辑读。

二者执行效率相差很大,一个需要78289次逻辑读,而另一个只需要5个逻辑读。观察二者的执行计划可以发现,两个执行计划唯一的区别就是第二个查询在COUNT这步使用了STOPKEY,也就是说,OracleROWNUM <= 20推入到查询内层,当符合查询的条件的记录达到STOPKEY的值,则Oracle结束查询。

因此,可以预见,采用第二种方式,在翻页的开始部分查询速度很快,越到后面,效率越低,当翻到最后一页,效率应该和第一种方式接近。


? ? ? ??此时,有78289次逻辑读。