这种计算方法肯定慢了,行数越多就越慢。
优化方法
1、不要每个计算就遍历所有行一次,放到一个for循环里对各种功能进行计算就行了
下面是2个循环
For i As Integer=0 To DataTables("库存表20211005").datarows.count-1
循环1的代码
Next
Dim dr As DataRow
Dim du As DataRow
Dim dv As DataRow
For j As Integer=0 To DataTables("库存表20211005").datarows.count-1
循环2的代码
Next
完全可以放到一个循环里做
For i As Integer=0 To DataTables("库存表20211005").datarows.count-1
循环1的代码
Dim dr As DataRow
Dim du As DataRow
Dim dv As DataRow
循环2的代码
Next
所有的循环都可以合并为一个。这样表格有72000行,只需要循环72000次,原来的用法10个功能循环10次,也就是需要循环72000 * 10 = 720000次
2、看大部分计算方法都是从历史表里查询然后计算,这种建议使用SQLGroupTableBuilder进行多表关联统计:http://www.foxtable.com/webhelp/topics/1626.htm