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添加索引了?
------解决方案--------------------
可能很有关系,如果TM列式DESC降序索引,这个时候就发挥作用了
------解决方案--------------------
比较执行计划