Foxtable(狐表)用户栏目专家坐堂 → 这段代码执行时非常慢,有没有优化些方法?


  共有5343人关注过本帖树形打印复制链接

主题:这段代码执行时非常慢,有没有优化些方法?

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


加好友 发短信
等级:二尾狐 帖子:559 积分:6282 威望:0 精华:0 注册:2008/9/7 20:15:00
这段代码执行时非常慢,有没有优化些方法?  发帖心情 Post By:2018/7/8 21:00:00 [只看该作者]

在蓝版主的帮助下,完成了一个小小高考志愿查询筛选程序。在这里选感谢蓝版。有一个按钮代码在程序执行时非常慢,蓝版及各位老师看一下,还有没有化的方法,让其在执行的快一些。选谢谢各位版主及老师了。
选上图,看一下执行时间:

图片点击可在新窗口打开查看此主题相关图片如下:000.png
图片点击可在新窗口打开查看
代码如下:
e.Form.Controls("Label1").Text = "正在调入各年度最低分平均分及排名,请稍后..."
Application.DoEvents()
Dim timestart,timeend As Date
timestart=Date.now
Dim dt1 As DataTable = DataTables("年度院校提档线")
For Each ary As String() In dt1.GetValues("院校代码|文理分科|录取批次", "院校代码 is not null")
    Dim filter As String = "院校代码='" & ary(0) & "' and 文理分科 = '" & ary(1) & "' and 录取批次 = '" & ary(2) & "'"
    Dim filter1 As String = filter & " And 录取年度 = '2017'"
    Dim filter2 As String = filter & " And 录取年度 = '2016'"
    Dim filter3 As String = filter & " And 录取年度 = '2015'"
    
    Dim fdr1 = dt1.find(filter1)
    If fdr1 IsNot Nothing Then
        dt1.ReplaceFor("乙年最低分", fdr1("最低分"), filter)
        dt1.ReplaceFor("乙年平均分", fdr1("平均分"), filter)
        dt1.ReplaceFor("乙年最低分排名", fdr1("最低分排名"), filter)
        dt1.ReplaceFor("乙年平均分排名", fdr1("平均分排名"), filter)
    End If
    
    Dim fdr2 = dt1.find(filter2)
    If fdr2 IsNot Nothing Then
        dt1.ReplaceFor("丙年最低分", fdr2("最低分"), filter)
        dt1.ReplaceFor("丙年平均分", fdr2("平均分"), filter)
        dt1.ReplaceFor("丙年最低分排名", fdr2("最低分排名"), filter)
        dt1.ReplaceFor("丙年平均分排名", fdr2("平均分排名"), filter)
    End If
    
    Dim fdr3 = dt1.find(filter3)
    If fdr3 IsNot Nothing Then
        dt1.ReplaceFor("丁年最低分", fdr3("最低分"), filter)
        dt1.ReplaceFor("丁年平均分", fdr3("平均分"), filter)
        dt1.ReplaceFor("丁年最低分排名", fdr3("最低分排名"), filter)
        dt1.ReplaceFor("丁年平均分排名", fdr3("平均分排名"), filter)
    End If
Next
e.Form.Controls("Label1").Text = "调入完毕."
timeend=Date.now
e.Form.Controls("Label1").text="耗时" & (timeend-timestart).TotalSeconds & "秒"
Messagebox.Show("调入完毕!")


 回到顶部
帅哥哟,离线,有人找我吗?
baicaocao
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:497 积分:4892 威望:0 精华:0 注册:2012/4/20 8:42:00
  发帖心情 Post By:2018/7/8 21:24:00 [只看该作者]

这个三个find分开试试,就是三个循环语句并列,每年一个。看看执行速度是多少。。
另外如果可以的话,用sql中的存储语句试试。。应该能快不少。

 回到顶部
帅哥哟,离线,有人找我吗?
hbfnmxb
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:559 积分:6282 威望:0 精华:0 注册:2008/9/7 20:15:00
  发帖心情 Post By:2018/7/8 21:34:00 [只看该作者]

原来是每年一个按钮,后来是合到一起的,每年一个的时候,也不是很快,因为要调试,所以没注意到这个细节,现在进一步
完善,所以才发现了这个问题,另外,老师说到的SQL中的存储语句是什么意思?怎么试?谢谢老师!

 回到顶部
帅哥哟,离线,有人找我吗?
hbfnmxb
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:559 积分:6282 威望:0 精华:0 注册:2008/9/7 20:15:00
  发帖心情 Post By:2018/7/9 8:48:00 [只看该作者]

自己顶一下。

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/7/9 8:56:00 [只看该作者]

做一个执行慢的例子发上来测试。执行了多久?你想优化成多快?

 回到顶部
帅哥哟,离线,有人找我吗?
hbfnmxb
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:559 积分:6282 威望:0 精华:0 注册:2008/9/7 20:15:00
  发帖心情 Post By:2018/7/9 9:42:00 [只看该作者]

其它按钮几秒钟,这个432多秒,7分多鈡,我的意思如果有可以优化一下,快一点,如果没有这样就很好。非常感谢蓝版!!谢谢

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/7/9 14:02:00 [只看该作者]

以下是引用hbfnmxb在2018/7/9 9:42:00的发言:
其它按钮几秒钟,这个432多秒,7分多鈡,我的意思如果有可以优化一下,快一点,如果没有这样就很好。非常感谢蓝版!!谢谢

 

做个例子发上来测试。不可能耗时这么久的。


 回到顶部
帅哥哟,离线,有人找我吗?
hbfnmxb
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:559 积分:6282 威望:0 精华:0 注册:2008/9/7 20:15:00
  发帖心情 Post By:2020/12/25 13:36:00 [只看该作者]

老问题,如果一楼的公式,换成Select函数,可以吗?公式怎么写呢?谢谢老师!

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110443 积分:562081 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/12/25 14:29:00 [只看该作者]

请上传实例测试

 回到顶部
帅哥哟,离线,有人找我吗?
hbfnmxb
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:559 积分:6282 威望:0 精华:0 注册:2008/9/7 20:15:00
  发帖心情 Post By:2020/12/25 15:09:00 [只看该作者]

因论坛附件限制,固更改了文件扩展名,老师下载附件后,直接去掉rar的扩展名,即可解压缩。谢谢老师,麻烦了!
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:同表引用排名同位分公式执行慢求助.7z.rar


 回到顶部
总数 22 1 2 3 下一页