关联的效率
1 --A段
2 ----------------------
3 select so_d.*,
4 c_bf.FApproveState
5 from sal_OrderList so_d
6 left join bas_Bom bom_m
7 on (so_d.FMaterialKey = bom_m.FMaterialKey
8 and so_d.FColorKey = bom_m.FColorKey)
9 inner join com_BillInfo c_bf
10 on (bom_m.FFormKey = c_bf.FFormKey)
11 and (c_bf.FApproveState = 1)
12
13 --B段
14 ----------------------
15 select so_d.*,
16 c_bf.FApproveState
17 from sal_OrderList so_d
18 left join bas_Bom bom_m
19 inner join com_BillInfo c_bf
20 on (bom_m.FFormKey = c_bf.FFormKey)
21 and (c_bf.FApproveState = 1)
22 on (so_d.FMaterialKey = bom_m.FMaterialKey
23 and so_d.FColorKey = bom_m.FColorKey)
2 ----------------------
3 select so_d.*,
4 c_bf.FApproveState
5 from sal_OrderList so_d
6 left join bas_Bom bom_m
7 on (so_d.FMaterialKey = bom_m.FMaterialKey
8 and so_d.FColorKey = bom_m.FColorKey)
9 inner join com_BillInfo c_bf
10 on (bom_m.FFormKey = c_bf.FFormKey)
11 and (c_bf.FApproveState = 1)
12
13 --B段
14 ----------------------
15 select so_d.*,
16 c_bf.FApproveState
17 from sal_OrderList so_d
18 left join bas_Bom bom_m
19 inner join com_BillInfo c_bf
20 on (bom_m.FFormKey = c_bf.FFormKey)
21 and (c_bf.FApproveState = 1)
22 on (so_d.FMaterialKey = bom_m.FMaterialKey
23 and so_d.FColorKey = bom_m.FColorKey)
两段脚本达到的效果是一样的
1 --A
2 select wst.*
3 from com_MaterialWasteBook wst
4 left join B_Material b_m on wst.FMaterialKey = b_m.FKey
5 left join Color b_clr on wst.FColorKey = b_clr.FKey
6 left join bas_Items b_sz on wst.FSizeKey = b_sz.FKey
7 where b_m.FKey is not null
8
9 ---B
10 select wst.*
11 from com_MaterialWasteBook wst
12 inner join B_Material b_m on wst.FMaterialKey = b_m.FKey
13 inner join Color b_clr on wst.FColorKey = b_clr.FKey
14 inner join bas_Items b_sz on wst.FSizeKey = b_sz.FKey
15
2 select wst.*
3 from com_MaterialWasteBook wst
4 left join B_Material b_m on wst.FMaterialKey = b_m.FKey
5 left join Color b_clr on wst.FColorKey = b_clr.FKey
6 left join bas_Items b_sz on wst.FSizeKey = b_sz.FKey
7 where b_m.FKey is not null
8
9 ---B
10 select wst.*
11 from com_MaterialWasteBook wst
12 inner join B_Material b_m on wst.FMaterialKey = b_m.FKey
13 inner join Color b_clr on wst.FColorKey = b_clr.FKey
14 inner join bas_Items b_sz on wst.FSizeKey = b_sz.FKey
15
上面两段
查询开销
A 占98%
B 占2%
但是实际执行时,在100多W的记录中A执行只需25秒左右,B需要50秒(结果执行多次)