相关疑难解决方法(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万
查看次数

从RULE到COST的Oracle 10优化器:为什么?

Oracle决定从10g版本中删除基于规则的优化器,将基于成本的优化器作为唯一选择.

我认为基于规则的优化器具有始终可预测的无价值的积极方面.我已经看到Oracle 10g改变了执行计划,从而导致了类似乌龟的表演.

这可能是这种变化背后的理由?

sql oracle optimization

4
推荐指数
1
解决办法
1724
查看次数

标签 统计

oracle ×2

sql ×2

optimization ×1

oracle10g ×1

row-number ×1