oracle order by 导致查询慢的问题记录贴
问题描述:一条没有查询条件的SQL,就是有个order by导致查询的速度特慢。去掉order by之后很快。
有order by
SQL解释计划结果
没有order by
SQL解释计划结果
那么怎么让有order by 的排序SQL执行也那么快呢?网上找了好多资料,基本确定思路,就是索引。可是通常情况在排序字段上创建索引也没有起到效果,SQL分析工具也是没有使用索引,大量的耗时在排序上。
对于这个SQL分析了下,使用的是日期排序,然后试着在where条件中添加日期,发现居然引用了索引了。然后取了个巧,投了个机,在没有条件的时候添加一个默认日期段,使得查询速度直接起飞。
SQL分析发现并没有提升太多,15万比20万&