以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- [分享] 数据快速保存 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=52855) |
-- 作者:lsy -- 发布时间:2014/6/24 14:23:00 -- [分享] 数据快速保存 先感谢Bin、jspta、有点甜、逛逛
狐表什么都好,就是最后一步的保存,不够快。
修改或新增的数据,如果在一百行之内,还是狐表的代码简单、方便,也不会有速度慢的感觉。 但是一旦修改或新增的数据记录,超过千条,速度差距,就能明显感觉到。
有的项目,需要经常导入、合并同一张表,数据量也很大,保存是个难关。
ACCESS数据源,好多SQL语句不支持,只能在SQL数据源中测试了。
订单表,两千行数据。
一、Filler或高速合并,然后DataTables("订单").Load,200秒 Dim dt As Date = Date.Now 二、逐行插入 100秒 Dim dt As Date = Date.Now 三、多行一次插入,用分号(;)分隔语句 12秒 Dim dt As Date = Date.Now 四、多行一次插入,用 Union All 分隔语句 8秒 Dim dt As Date = Date.Now |
-- 作者:有点甜 -- 发布时间:2014/6/24 14:25:00 -- 如果加上事务,会不会快一些?第二种情况。 |
-- 作者:Bin -- 发布时间:2014/6/24 14:26:00 -- 谢谢分享 |
-- 作者:lsy -- 发布时间:2014/6/24 14:26:00 -- 四个方法中,第四个方法,应该是最好的了, 把Union All换成Union,就可以排除重复值。 |
-- 作者:lsy -- 发布时间:2014/6/24 14:31:00 -- 以下是引用有点甜在2014-6-24 14:25:00的发言:
如果加上事务,会不会快一些?第二种情况。 速度没区别,有事务,安全性肯定高了。 |
-- 作者:逛逛 -- 发布时间:2014/6/24 14:33:00 -- 第二种方法,我在本地Access 中试过
2000行数据,也是订单
逐行插入
用事务 2秒
不用事务 96 秒 |
-- 作者:lsy -- 发布时间:2014/6/24 14:36:00 -- 以下是引用逛逛在2014-6-24 14:33:00的发言:
第二种方法,我在本地Access 中试过
2000行数据,也是订单
逐行插入
用事务 2秒
不用事务 96 秒 我也测试了,一个1秒,一个2秒,也可以说,相差一倍吧。 |
-- 作者:有点甜 -- 发布时间:2014/6/24 14:44:00 -- 以下是引用lsy在2014-6-24 14:36:00的发言:
我也测试了,一个1秒,一个2秒,也可以说,相差一倍吧。
呃,这个不能这么说。汽车启动时候5秒才走不到50米,但不能说10秒只能跑100米。 [此贴子已经被作者于2014-6-24 14:44:37编辑过]
|
-- 作者:Gryvip -- 发布时间:2014/6/24 21:17:00 -- 这个是头疼的问题,先顶再看! |
-- 作者:zyqzyy -- 发布时间:2014/6/24 22:14:00 -- 导入、合并数据再保存,慢! |