Oracle分页查询详解(二)

阅读更多

 

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

Oracle分页查询详解(二)_第1张图片
        比较两种分页方法的区别:

Oracle分页查询详解(二)_第2张图片
        78289次逻辑读。

Oracle分页查询详解(二)_第3张图片
       5次逻辑读。

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

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

Oracle分页查询详解(二)_第4张图片
        此时,有78289次逻辑读。

  • Oracle分页查询详解(二)_第5张图片
  • 大小: 8.8 KB
  • Oracle分页查询详解(二)_第6张图片
  • 大小: 76.4 KB
  • Oracle分页查询详解(二)_第7张图片
  • 大小: 84.5 KB
  • Oracle分页查询详解(二)_第8张图片
  • 大小: 65.9 KB
  • Oracle分页查询详解(二)_第9张图片
  • 大小: 37.8 KB
  • Oracle分页查询详解(二)_第10张图片
  • 大小: 4.2 KB
  • Oracle分页查询详解(二)_第11张图片
  • 大小: 42 KB
  • Oracle分页查询详解(二)_第12张图片
  • 大小: 62.8 KB
  • Oracle分页查询详解(二)_第13张图片
  • 大小: 75 KB
  • Oracle分页查询详解(二)_第14张图片
  • 大小: 52.2 KB
  • 查看图片附件

你可能感兴趣的:(数据库,Oracle,分页查询,数据库优化)