体验sql语句不同写法的效率

体验sql语句不同写法的效率
               --荆兆春
Sql语句不同写法之间的效率肯定存在差异,但我也没有想到差别会这么大,下面就用一个实例来探讨一下。
业务场景:计算仓库库存台账的余额。
序号
物料ID
仓库ID
批号
入库数
出库数
库存数
1
1000
1000
 
200
 
 
2
1000
1000
 
 
10
 
3
1000
1000
 
 
20
 
4
1000
1001
 
300
 
 
5
1000
1001
 
 
20
 
6
1000
1001
 
 
30
 
7
1001
1002
 
400
 
 
要求:按物料+仓库+批号计算每一行的库存余额。

方法1:循环的方法

体验sql语句不同写法的效率

  1. 当计算10000行的时候28秒才能完成。
  2. 稍微修改了一下

体验sql语句不同写法的效率

  1. 主要动的是注释掉的那一行,这样后计算10000行,需要19秒,可见用选择语句赋值耗费掉的时间。
  2. 我这边测试的数据有14万行数据,计算了420秒后实在等不下去了,需要优化,改用游标的方法。

 

方法2:游标的方法

体验sql语句不同写法的效率

  1. 计算10000行数据瞬间完成了。
  2. 计算所有数据也不到10秒钟,由此可体验到sql编程的效率问题。