体验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:循环的方法
- 当计算10000行的时候28秒才能完成。
- 稍微修改了一下
- 主要动的是注释掉的那一行,这样后计算10000行,需要19秒,可见用选择语句赋值耗费掉的时间。
- 我这边测试的数据有14万行数据,计算了420秒后实在等不下去了,需要优化,改用游标的方法。
方法2:游标的方法
- 计算10000行数据瞬间完成了。
- 计算所有数据也不到10秒钟,由此可体验到sql编程的效率问题。