首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > 其他数据库 >

Oracle分页查询详解(4)

2013-11-14 
Oracle分页查询详解(四)? ? 下面进行测试包含排序操作的分页查询。可以简单的将查询分为两种不同情况,第一

Oracle分页查询详解(四)

? ? 下面进行测试包含排序操作的分页查询。可以简单的将查询分为两种不同情况,第一种排序列就是索引列,这种可以利用索引读取,第二种排序列没有索引。


? ? 这种情况下,通过索引可以完全得到查询的结果,因此可以避免表扫描的产生。


? ? 由于不能仅仅通过索引扫描得到查询结果,这里Oracle选择了表扫描。这是由于初始化参数设置决定的。因此,建议在分页的时候使用FIRST_ROWS提示。


? ? 使用了FIRST_ROWS提示后,Oracle不需要扫描全表,而且避免了排序操作。




? ? 观察两种不同写法的ORDER BY步骤,一个是带STOPKEY的ORDER BY,另一个不带。对于第一个查询语句来说,进行的数据的全排序,排序数据量大,排序操作不得不在磁盘上完成,因此耗时比较多;而对于第二个查询语句,Oracle利用了ORDER BY STOPKEY方式进行排序,排序操作只排序需要的TOP N的数据,因此排序操作放到了内存中。因此在大数据量需要排序的情况下,带STOPKEY的效率要比不带STOPKEY排序的效率高得多。

通过上面的例子可以看出给出的标准分页查询格式,对于包含排序的操作仍然可以在很大程度上提高分页查询性能。

热点排行