我有下面的这条SQL语句:
          select nvl(sum(d.fqty), 0) into vStkedQty
          from tfrestorealc m, tfrestorealcdtl d, tfreord mo, tfreorddtl md
          where m.num = d.num and m.stat = PWM_DEF.staConfirmedId and mo.stat = PWM_DEF.staAuditedId
            and instr(d.ffreorddtl, mo.num) > 0 and mo.num = md.num
            and md.farticle = d.farticle and m.num between PWM_DEF.syscode || TO_CHAR(SYSDATE - 7, 'YYMMDD') and PWM_DEF.syscode || TO_CHAR(SYSDATE + 1, 'YYMMDD')
            and mo.num between PWM_DEF.syscode || TO_CHAR(SYSDATE - 7, 'YYMMDD') and PWM_DEF.syscode || TO_CHAR(SYSDATE + 1, 'YYMMDD')
            and d.farticle = qq.farticle;    其中,tfrestorealc表的主键是num,tfrestorealcdtl表的主键是num,line;tfreord表的主键是num,tfreorddtl表的主键是num,line;    以前这条语句执行的时间一直很短,前几天的时候,执行的时候突然就变成了十几秒;我把搜索范围由七天改成三天,执行时间就又变得很快了。    前七天和前三天的tfrestorealcdtl数据分别是:29993、13003,前七天和前三天的tfreorddtl数据分别是:3507、1527。    哪位知道这是怎么回事呀?除了把搜索时间变短以外,还有什么其他的好办法呀?