Foxtable(狐表)用户栏目专家坐堂 → AddNew 特别慢


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

主题:AddNew 特别慢

美女呀,离线,留言给我吧!
qianqian1530
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:746 积分:5567 威望:0 精华:0 注册:2013/12/4 8:56:00
AddNew 特别慢  发帖心情 Post By:2016/11/19 20:26:00 [只看该作者]

AddNew() 添加 3000 左右 需要130秒, 可以提高速度吗?

'''

Dim st As Date = Date.Now '将开始时间保存在变量st中
For sa= 0 3120 Step 1
    Dim data_zaiko As DataRow
    data_zaiko = DataTables("st_7610490_在庫").SQLFind("商品型番 = 123")
    If data_zaiko IsNot Nothing Then '如果找到符合条件的行
        data_zaiko("色") = "商材王.com"
        data_zaiko("在庫") = "商材王.com"
        data_zaiko("備考欄") = "商材王.com"
        data_zaiko("今後の予定") = "商材王.com"
        data_zaiko("状態") = "商材王.com"
        data_zaiko("メーカ") = "商材王.com"
    Else
        Dim data_zaiko_Add As DataRow
        data_zaiko_Add = DataTables("st_7610490_在庫").AddNew()
        data_zaiko_Add("商品型番") = "商材王.com"
        data_zaiko_Add("色") = "商材王.com"
        data_zaiko_Add("属性コード") = "商材王.com"
        data_zaiko_Add("在庫") = "商材王.com"
        data_zaiko_Add("備考欄") = "商材王.com"
        data_zaiko_Add("今後の予定") = "商材王.com"
        data_zaiko_Add("状態") = "商材王.com"
        data_zaiko_Add("JAN") = "商材王.com"
        data_zaiko_Add("メーカ") = "商材王.com"
    End  If
    

Next
MessageBox.Show("耗时: " & (Date.Now - st).TotalSeconds & "秒")
[此贴子已经被作者于2016/11/19 20:25:45编辑过]

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


加好友 发短信 一级勋章
等级:超级版主 帖子:7258 积分:40773 威望:0 精华:16 注册:2008/8/31 23:23:00
  发帖心情 Post By:2016/11/19 21:26:00 [只看该作者]

不建议这么大量添加行!

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


加好友 发短信
等级:七尾狐 帖子:1732 积分:11266 威望:0 精华:0 注册:2011/12/15 22:06:00
  发帖心情 Post By:2016/11/19 22:29:00 [只看该作者]

data_zaiko = DataTables("st_7610490_在庫").SQLFind("商品型番 = 123")

主要是这句话循环次数太多比较慢,你要解决的是,如何避免这个循环。
如果只是一次导入,那么也无需太多优化,你经常要导入,你要解决的是你设计思路问题。

 回到顶部
美女呀,离线,留言给我吧!
qianqian1530
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:746 积分:5567 威望:0 精华:0 注册:2013/12/4 8:56:00
  发帖心情 Post By:2016/11/20 0:04:00 [只看该作者]

嗯, 我也发现了,   我是从网站上 采集 库存数据, 实时更新自己的数据库, 所以```╮(╯▽╰)╭  在想想别的办法吧

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


加好友 发短信
等级:二尾狐 帖子:573 积分:2961 威望:0 精华:0 注册:2016/10/27 14:33:00
  发帖心情 Post By:2016/11/20 9:14:00 [只看该作者]

1、SQLFind 不能重复使用,不然效率会很低。你还不如先加载所有的数据然后find,或者是把需要查询比较的东西先放到一个集合里面去。

 

2、查询和新增不要同时执行,要看看 http://www.foxtable.com/webhelp/scr/2225.htm

 


 回到顶部