作者eggeggss (Suddenly I See)
看板Database
标题[SQL ] 请问用回圈与子查询的效能问题
时间Thu May 7 01:13:51 2009
小弟用的是MSSQL,希望做出累计的效果
假设需要累计的资料高达十万笔
我的原始资料假设如下:
id part_no qty
1 A 1
2 A 2
3 A 3
4 B 2
5 B 1
.
.
.
结果要变成
id part_no qty qty_sum(根据part_no的累计栏位)
1 A 1 1
2 A 2 3
3 A 3 6
4 B 2 2
5 B 1 3
.
.
.
於是我利用以下的sub query 可以达成达成目的
select part_no,qty_sum=(select sum(qty) from [某table] where id<a.id
and part_no=a.part_no)
from 某table a
因为之前的前辈在这段的写法是利用回圈计算,(须绕十万次,约一个小时),
小弟用profiler
发现整只预储程序的bottleneck就是这段计算
希望能够改写前辈的写法
想请教 sub query与利用回圈计算累加何者效率会比较高
小弟有稍微测试两者的效能,似乎看不出何者较高(因为处於多工环境,
server分配的资源不一定均等,所以无法做banch mark)
感激不尽
--
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 118.169.97.54
※ 编辑: eggeggss 来自: 118.169.97.54 (05/07 01:16)
※ 编辑: eggeggss 来自: 118.169.97.54 (05/07 01:19)