oracle分页查询 为什么第一页显示第1条,第10条第100条及以后数据_百度...
发布网友
发布时间:2022-04-23 15:26
我来回答
共1个回答
热心网友
时间:2022-04-07 18:29
oracle分页查询 为什么第一页显示第1条,第10条第100条及以后数据
1、通常的分页写法,也是第一种分页方法,类似如下方式:
select * from (
select a.*, rownum rn from
(select * from test a order by object_name) a
where rownum <=1000)
where rn > 990;
这种方式,是对表进行排序翻页,比较常见,但是,第一页与第1000页的性能差异还是挺明显的。
2、第二种的分页写法是对索引进行翻页操作,然后根据rowid 去表中取数据。 这种方式,第一页与第1000页性能相差不大。
以下语句虽然使用HINT指定使用索引, 但是仍然没有生效。
select b.* from (
select * from (
select a.*, rownum rn from
(select /*+ index(a ix_object_name) */ rowid rid from test a order by object_name) a
where rownum <=20)
where rn > 10) a, test b
where a.rid = b.rowid;