相关疑难解决方法(0)

如何加速Oracle中的row_number?

我有一个SQL查询,看起来像这样:

SELECT * FROM(
    SELECT
        ...,
        row_number() OVER(ORDER BY ID) rn
    FROM
        ...
) WHERE rn between :start and :end
Run Code Online (Sandbox Code Playgroud)

从本质上讲,正是ORDER BY部分减慢了速度.如果我要删除它,EXPLAIN成本会下降一个数量级(超过1000倍).我试过这个:

SELECT 
    ...
FROM
    ...
WHERE
    rownum between :start and :end
Run Code Online (Sandbox Code Playgroud)

但这并没有给出正确的结果.有没有简单的方法来加快速度?或者我是否需要花更多时间使用EXPLAIN工具?

sql oracle row-number oracle10g

11
推荐指数
2
解决办法
2万
查看次数

标签 统计

oracle ×1

oracle10g ×1

row-number ×1

sql ×1