当前位置: 代码迷 >> Oracle管理 >> 求教一个查询过程中排序影响效率的有关问题
  详细解决方案

求教一个查询过程中排序影响效率的有关问题

热度:72   发布时间:2016-04-24 04:16:47.0
求教一个查询过程中排序影响效率的问题
select * from ( 
select ST_STBPRP_B.STNM,ST_RIVER_R.*,rownum rm 
from ST_RIVER_R ST_RIVER_R 
left JOIN ST_STBPRP_B ON ST_STBPRP_B.STCD = ST_RIVER_R.STCD 
where rownum <= 20 and  1=1  and st_stbprp_b.sttp = 'PP'  order by ST_RIVER_R.stcd,tm DESC 
)  where rm > 0


select * from ( 
select ST_STBPRP_B.STNM,ST_RIVER_R.*,rownum rm 
from ST_RIVER_R ST_RIVER_R 
left JOIN ST_STBPRP_B ON ST_STBPRP_B.STCD = ST_RIVER_R.STCD 
where rownum <= 20 and  1=1  and st_stbprp_b.sttp = 'PP'  order by ST_RIVER_R.stcd DESC 
)  where rm > 0


只是排序的时候少了一个TM列,导致第一个在1秒之内出结果,第二个要1分钟以上才能出数据,求大神指点下什么原因啊

------解决方案--------------------
你可以针对相关的表手工收集一次统计,看看是否还这样。
如果是,把执行计划拉出来比较比较。

------解决方案--------------------
tm添加索引了?
------解决方案--------------------
引用:
Quote: 引用:

tm添加索引了?



嗯,是的,和这个有关系吗?


可能很有关系,如果TM列式DESC降序索引,这个时候就发挥作用了
------解决方案--------------------
比较执行计划
  相关解决方案