以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- 狐表大量数据保存的问题 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=106990) |
-- 作者:qqibai -- 发布时间:2017/9/19 18:07:00 -- 狐表大量数据保存的问题 在狐表导入EXCEL文件,6000条数据,处理时间10秒 如果直接保存,大概要12分钟 试着用sql语句生成,因为数据每次都要更新,所以我是清空表然后新增行,所以都是Insert命令,还是要10分钟 求老师给个方法,6000条数据保存就要十分钟,有没有好的办法
自己瞎凑的代码如下
Dim p As WinForm.ProgressBar = e.Form.Controls("ProgressBar1") |
-- 作者:有点甜 -- 发布时间:2017/9/19 18:39:00 -- 不要在导入的时候执行 cmd.ExecuteNonQuery
你可以先导入,然后再保存,参考 http://www.foxtable.com/bbs/dispbbs.asp?BoardID=2&ID=98689&skin=0
|
-- 作者:qqibai -- 发布时间:2017/9/19 19:29:00 -- 我一开始就是单独做保存,试了也需要那么久额 后来放到里面,速度没什么变化,我明天再试试看 |
-- 作者:有点蓝 -- 发布时间:2017/9/19 20:15:00 -- Sqlserver如果全部插入可以试试SqlBulkCopy http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&Id=84350
|
-- 作者:cbt -- 发布时间:2017/9/19 20:25:00 -- 把 VALUES 批量 拼接,一次插入! 参考: INSERT INTO MyTable(ID,NAME) VALUES(7,\'003\'),(8,\'004\'),(9,\'005\'); |
-- 作者:qqibai -- 发布时间:2017/9/20 10:41:00 -- 以下是引用cbt在2017/9/19 20:25:00的发言:
把 VALUES 批量 拼接,一次插入! 参考: INSERT INTO MyTable(ID,NAME) VALUES(7,\'003\'),(8,\'004\'),(9,\'005\'); 测试了,少量数据还行,5000条数据狐表假死了,不知道是不是超出了sql语句长度还是其他的,没显示未响应,但是也没做任何数据处理 |
-- 作者:qqibai -- 发布时间:2017/9/20 11:37:00 -- 以下是引用有点蓝在2017/9/19 20:15:00的发言:
Sqlserver如果全部插入可以试试SqlBulkCopy http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&Id=84350 牛逼,不到5秒完成,原来要十分钟 |
-- 作者:有点甜 -- 发布时间:2017/9/20 11:54:00 -- 以下是引用qqibai在2017/9/19 19:29:00的发言:
我一开始就是单独做保存,试了也需要那么久额 后来放到里面,速度没什么变化,我明天再试试看
不可能需要这么久的,你不能sql语句一句一句执行,你要把所有sql语句一次性提交。
有问题的例子发上来看看。 |
-- 作者:qqibai -- 发布时间:2017/9/20 13:37:00 -- 以下是引用有点甜在2017/9/20 11:54:00的发言:
不可能需要这么久的,你不能sql语句一句一句执行,你要把所有sql语句一次性提交。
有问题的例子发上来看看。 对,原来按照论坛帖子做的sql函数提取,他是一条一条生成,一条一条保存的,很慢 昨晚看到说可以直接生成一条来保存,试了一下,一次性5000条狐表卡死,数据库未更新,没有再去测试1000条、500条的数据 直接用SqlBulkCopy,5秒搞定了 |
-- 作者:有点甜 -- 发布时间:2017/9/20 14:38:00 -- 以下是引用qqibai在2017/9/20 13:37:00的发言:
对,原来按照论坛帖子做的sql函数提取,他是一条一条生成,一条一条保存的,很慢 昨晚看到说可以直接生成一条来保存
不,可,能。你加上事务
http://www.foxtable.com/webhelp/scr/2933.htm
或者直接测试2楼的例子 http://www.foxtable.com/bbs/dispbbs.asp?BoardID=2&ID=98689&skin=0
|