SQL优化问题

来源:这里教程网 时间:2026-03-03 17:44:40 作者:

今天遇到一个oracle 优化问题,因为是数据库是接近2百万的数据,查询出来会比较慢,最后查看了一下是对应的分页问题:使用rownumer解决,而不是伪劣,区别在哪里呢?

使用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

相关推荐