【发布时间】:2016-05-31 13:41:09
【问题描述】:
我正在 Oracle SQL 开发人员中运行一个查询,看起来像这样:
select * from dummy_table where col1 rownum
查询大约需要 3 秒,如果 x 的值
但如果将 x 替换为大于 12 的任何值,则查询耗时超过 7 秒,并且只返回 12 个结果(换句话说,只有 12 行满足 where 子句)。
为什么 rownum 会这样?如果 x 的值从 12 更改为 13,我希望此查询花费几乎相同的时间。
编辑: 我注意到的另一件事是 col1、col2 和 col3 上有一个复合索引。如果我删除索引(或使用提示禁用它),查询会运行得非常快。
【问题讨论】: