可能是:
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'的也许要少得多,如果放在前,先虑去一些
所以速度快
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'的也许要少得多,如果放在前,先虑去一些
所以速度快
方法一与方法二这两个视图的数据集都一样,只是执行效率不一样。用方法一执行'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秒.
将两个表加上一些条件都查询出来,看看符合条件的数据量差别到底多大。