可能是:
left outer join  v_cgfp cgfp on cgfp.GOODSCODE=DH.GOODSCODE  and (cgfp.zt='2' or cgfp.zt='5')
V_cgfp内符合条件的记录与 v_dhqd dh  left  outer  join v_cksf_cgrk
的结果链接起来相当大而 v_xsfp 符合zt='2' zt='5'的也许要少得多,如果放在前,先虑去一些
所以速度快

解决方案 »

  1.   

    to  j9988(j9988) 
    方法一与方法二这两个视图的数据集都一样,只是执行效率不一样。用方法一执行'select  *  from V_DHQD_YSZ  where pricetaxacount_CGFP1  is null’得到的结果为440条记录,时间为1分40秒.
    用方法二执行'select  *  from V_DHQD_YSZ  where pricetaxacount_CGFP1  is null’得到的结果为440条记录,时间为2秒.
      

  2.   

    可能是v_cgfp,v_xsfp中符合条件的数据量相差比较大吧
      

  3.   

    用方法一执行'select    *    from  V_DHQD_YSZ    where  pricetaxacount_CGFP1    =0 ’得到的结果为20条记录,时间为2秒.
      

  4.   

    Left Outer Join 逻辑运算符返回每个满足第一个(顶端)输入与第二个(底端)输入的联接的行。它还返回任何在第二个输入中没有匹配行的第一个输入中的行。第二个输入中的非匹配行作为空值返回。如果 Argument 列内不存在任何联接谓词,则每行都是一个匹配行。
    将两个表加上一些条件都查询出来,看看符合条件的数据量差别到底多大。