以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- AddNew 特别慢 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=93066) |
-- 作者:qianqian1530 -- 发布时间:2016/11/19 20:26:00 -- AddNew 特别慢 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编辑过]
|
-- 作者:程兴刚 -- 发布时间:2016/11/19 21:26:00 -- 不建议这么大量添加行! |
-- 作者:jspta -- 发布时间:2016/11/19 22:29:00 -- data_zaiko = DataTables("st_7610490_在庫").SQLFind("商品型番 = 123") 主要是这句话循环次数太多比较慢,你要解决的是,如何避免这个循环。 如果只是一次导入,那么也无需太多优化,你经常要导入,你要解决的是你设计思路问题。
|
-- 作者:qianqian1530 -- 发布时间:2016/11/20 0:04:00 -- 嗯, 我也发现了, 我是从网站上 采集 库存数据, 实时更新自己的数据库, 所以```╮(╯▽╰)╭ 在想想别的办法吧 |
-- 作者:有点青 -- 发布时间:2016/11/20 9:14:00 -- 1、SQLFind 不能重复使用,不然效率会很低。你还不如先加载所有的数据然后find,或者是把需要查询比较的东西先放到一个集合里面去。
2、查询和新增不要同时执行,要看看 http://www.foxtable.com/webhelp/scr/2225.htm
|