关联的效率

简介:  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.

 

 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)
 
两段脚本达到的效果是一样的
 
在查询分析器中显示计划的效果A段占用了70%的开销, B段占用30%开销,可见B段效率比A段高
 

 

 

 

 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    

 上面两段

 查询开销

A 占98%

B 占2%

 

但是实际执行时,在100多W的记录中A执行只需25秒左右,B需要50秒(结果执行多次)

 

目录
相关文章
|
2月前
|
监控 数据挖掘
有效的资源动态管理是确保项目成功和组织效率的关键
有效的资源动态管理是确保项目成功和组织效率的关键
132 71
|
1月前
|
存储 C#
【C#】大批量判断文件是否存在的两种方法效率对比
【C#】大批量判断文件是否存在的两种方法效率对比
40 1
|
4月前
|
数据处理 数据库 索引
数据库索引策略如何影响数据的读取效率?
【7月更文挑战第3天】数据库索引策略如何影响数据的读取效率?
33 2
|
5月前
3操作工作表
3操作工作表
|
数据库 UED 索引
索引创建原则:提升数据库性能与查询效率的关键
在现代软件系统中,数据库是一个关键的组成部分,而索引作为提高数据库性能和查询效率的重要手段之一,其设计和创建的合理性直接影响着整个系统的稳定性和响应速度。本文将介绍索引的基本概念和原则,并详细探讨索引创建的几个关键原则,帮助读者了解如何为数据库中的表创建最优的索引,以提升系统性能。
184 0
|
Java
策略枚举:消除在项目里大批量使用if-else的优雅姿势
可以替换大量的if-else语句,且具备较好的可读性与扩展性,同时能显得轻量化,我比较推荐使用策略枚举来消除if-else。
121 0
|
数据库 索引
数据库查询条件优化方案
数据库查询条件优化方案
|
算法 数据挖掘 开发者
关联模式评估| 学习笔记
快速学习关联模式评估。
关联模式评估| 学习笔记
|
存储 安全 JavaScript
请求合并的 3 种方式,大大提高接口性能!
将相似或重复请求在上游系统中合并后发往下游系统,可以大大降低下游系统的负载,提升系统整体吞吐率。文章介绍了 hystrix collapser、ConcurrentHashMultiset、自实现BatchCollapser 三种请求合并技术,并通过其具体实现对比各自适用的场景。
|
存储 XML 缓存
请求合并的 3 种方式,大大提高接口性能。。。
请求合并的 3 种方式,大大提高接口性能。。。
347 0