暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Oracle 分页查询

ASKTOM 2020-03-30
162

问题描述

贝洛,问问汤姆队。

我需要构建一个连接到18c Oracle数据库的报告。

有很大的表格,我需要分页结果。我想在报告中显示每页50行。

自Oracle 12以来,我已经阅读了有关Fetch,Offset功能的信息。我也有这些功能比旧的rownum慢。对吗?你推荐哪一个?

2.如何使用上面推荐的方法获得50行分页?

提前感谢。

专家解答

存在一个错误,其中可能的fetch first索引成本不正确。这是固定的,并且补丁可以追溯到12.1.0.2:

https://blogs.oracle.com/optimizer/fetch-first-rows-just-got-faster

2.你得到前五十行:

select * from t
order by ...
fetch first 50 rows only;


接下来的五十个有:

select * from t
order by ...
offset 51 rows
fetch next 50 rows only;


请注意,当数据在页面加载之间更改时,分页通常会出现问题。当使用偏移时,这可能会导致意想不到的结果。在以下位置阅读有关此的更多信息:

https://use-the-index-luke.com/no-offset
文章转载自ASKTOM,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论