Foxtable(狐表)用户栏目专家坐堂 → 令人目瞪口呆的效率差别(有修正)


  共有43113人关注过本帖平板打印复制链接

主题:令人目瞪口呆的效率差别(有修正)

帅哥哟,离线,有人找我吗?
狐狸爸爸
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47448 积分:251054 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2010/12/7 15:04:00 [只看该作者]

看来不单单查询这样,遍历过程中,任何涉及到所有行的操作,例如查找和计算都如此,我将第一列和第二列改为整数型,下面两段代码效率同样相差几百倍:

 

普通的:

Dim v As Double
For Each dr As DataRow In DataTables("表A").DataRows
    v = DataTables("表A").Compute("Sum(第二列 )", "第二列 = " & dr("第一列"))
    dr("第四列") = v
Next

 

高效的,快了300倍:

Dim Dic As new Dictionary(of DataRow, Integer)
Dim v As Double
For Each dr As DataRow In DataTables("表A").DataRows
    v = DataTables("表A").Compute("Sum(第二列 )", "第二列 = " & dr("第一列"))
    dic.Add(dr, v) 
Next
For Each dr As DataRow In dic.Keys
    dr("第四列") = dic(dr)
Next


 回到顶部
总数 96 1 2 3 4 5 6 7 8 9 10 下一页