使用rownum进行排序的时候是先对结果集加入伪劣rownum然后再进行排序,而row_number()在包含排序从句后是先排序再计算行号码。
SELECT * FROM ( SELECT /*+ INDEX_ASC(t index_on_column) NOPARALLEL_INDEX(t index_on_column) */ t.*, ROWNUM AS rn FROM table t ORDER BY column ) WHERE rn >= :start AND rownum <= :end - :start + 1
结果换成row_number 竟然好了,真是奇怪了, https://www.codingdict.com/questions/215818 推荐阅读: https://www.cnblogs.com/tyyking/p/10664944.html https://blog.csdn.net/weixin_31942999/article/details/116368455
编辑推荐:
- SQL优化问题03-03
- DG主备日志缺失,数据无法同步修复03-03
- 表空间TSPITR恢复-实验03-03
- oralce schema 的设计意思03-03
- 金山办公在B端蓝海:玩激流勇进?03-03
- 有什么软件支持对会员进行等级分类、折扣处理03-03
- sqlplus登录数据库报错ORA-12547: TNS:lost contact03-03
- 福禄克网络CFP光纤损耗测试帮您规避综合布线容易犯的错误03-03
