substr(result,1,1)<>'-' 
不要对Result用substr函数,也不要用不等号,根据你的数据库设计改造成等于效果比较明显。
另外Result字段的结果有非数字的吗?为什么不用NUMBER型数据?

解决方案 »

  1.   

    try:
    SELECT  *  
     FROM  ITF_TOTAL  
       WHERE  (RESULT='-2' or result not like '-%')  
       and  flag=0 and  (data_target='CCAT'  or  data_send='CCAT')  and  rownum<2;  data_target,data_send列也创建索引
      

  2.   

    substr(result,1,1)这个用不上索引,如果想使用的话,要建立substr(result,1,1)的函数索引
      

  3.   

    SELECT /*+ FIRST_ROWS(1) */ * from ...,可能会快一点