看板 Database 關於我們 聯絡資訊
小弟用的是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)