你的问题我刚处理过,是由optimizer_mode参数引起的,该参数的默认值为choose,即为如表有statis则查询走基于cost的方式,否则走基于rule的方式,因些你可以有以下几个解决方法。
1、简单的在init<sid>.ora中设optimizer_mode=rule,重起数据库。
2、使用analyze table table_name(索引基表) delete statistics;
3、最后一个万能办法,将表和索引drop掉,重建。

解决方案 »

  1.   

    请大家帮我看看/* Formatted on 2002/12/13 09:21 (RevealNet Formatter v4.4.0) */
    SELECT COUNT (a.yhbh) AS yhsm
      FROM jb.jb_yhk a, qx.qx_dt_yhjbsjk b
     WHERE a.csdm = 14
       AND a.yhbh = b.yhbh
       AND a.qxdm IN (24,32,40,48,56,64,72,80,158,159,160,161,
                      168
                     )
       AND a.pzrq <= LAST_DAY (TO_DATE ('2003-1-1', 'YYYY-MM-DD'))
       AND a.jyzt = 1
       AND b.jylx = 1
       AND b.yhjb IN (2)
       AND a.jjlx IN (10, 11, 12, 13, 14, 15, 16, 17, 18)jb.jb_yhk上有一个主键yhbh(业户编号),本身就是索引对吧?
    jb.jb_yhk上还有一个索引: qxdm(区县代码)index_name  Unique    Column name Position
    PK_JB_YHK   UNIQUE       yhbh          1
    PK_JB_QXDM  NONUNIQUE    qxdm          1
     qx.qx_dt_yhjbsjk 上有一个索引 yhbh index_name  Unique    Column name Position
    PK_QX_YHBH  NONUNIQUE    yhbh          1