|
|
Re: 为什么加上索引速度奇慢无比?
最初由 jimmylee 发布
需要说明的是目前的记录的moni_area,moni_typeid,moni_flag都是相同的,就是说目前的99万条记录加不加where语句查询的记录集都是一样的(但将来可能不一定)
[/B]
这不相当于全表扫描?当然慢了,建议建立如下索引:
create index index2 on cstmonilog(moni_area,moni_typeid,moni_flag,moni_time)
)
因为你看一下你的统计:
1 sorts (disk)
前面一个是没有sorts (disk)
SQL改为:
select rowid rID, MONI_TIME,MONI_TYPE,MONI_APERRCODE,MONI_CONSTANT,SubStr(MONI_USERINFO,1,50) MONI_USERINFO
from cstmonilog
where rowid IN
(select rid from (select rownum rno,rowid /*+ INDEX(cstmonilog index2 ) */ rid from cstmonilog where MONI_AREA = :MoniAreaNo and MONI_TYPEID = :MoniTypeID and MONI_FLAG = '1' and rownum <:MoniNoLast
order by MONI_TIME) where rNo >=:MoniNoFirst )
order by MONI_TIME;
|
|