以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- [灌水]狐表的保存是否在开挂 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=54427) |
-- 作者:qq121454970 -- 发布时间:2014/7/28 12:18:00 -- [灌水]狐表的保存是否在开挂 本帖纯属水贴,走过路过,千万不要难过 经测试:狐表保存1000行(新增行)(Access)耗时1.9秒 ,保存1000行(新增行)(SQL)耗时0.9-1.0秒 然而我用.net的OleDbConnection和OleDbCommand类操作,丫的竟然用了23秒之多(循环SQL执行,为返回主键,一行会执行2个SQL语句,也就是循环执行了2000次) 狐表还是比较给力的啊
[此贴子已经被作者于2014-7-28 12:19:40编辑过]
|
-- 作者:jspta -- 发布时间:2014/7/28 12:20:00 -- 是你的代码不合理 |
-- 作者:qq121454970 -- 发布时间:2014/7/28 12:23:00 -- 回复:(jspta)是你的代码不合理 从我的理解来说,每保存一行,就促发了行的保存事件(如果是新增行,害的返回主键值,要知道,Access是不支持多SQL语句的),也就代表说,狐表也是循环执行SQL保存的,如果是新增行,从我的理解来说,也执行了2次事件,要么就是他的新增行的主键只是本地计算的 [此贴子已经被作者于2014-7-28 12:24:02编辑过]
|
-- 作者:jspta -- 发布时间:2014/7/28 12:38:00 -- 以下是引用qq121454970在2014-7-28 12:23:00的发言: 从我的理解来说,每保存一行,就促发了行的保存事件(如果是新增行,害的返回主键值,要知道,Access是不支持多SQL语句的),也就代表说,狐表也是循环执行SQL保存的,如果是新增行,从我的理解来说,也执行了2次事件,要么就是他的新增行的主键只是本地计算的 ACCESS不支持多SQL语句?你确定吗?我没有试过,但基本的SQL语句肯定没问题。还有SQL语句就算一条条插入,也很快,1000条也用不了几秒。关于主键值,可以重新加载一次表更新,这样也就相关于一条语句把。你可以参考LSY的关于SQL保存的一个例子
|
-- 作者:qq121454970 -- 发布时间:2014/7/28 12:46:00 -- 回复:(jspta)以下是引用qq121454970在2014-7-28 12... 想法不错,我找找看,狐狸爸爸呢,也出来说一句啊 |
-- 作者:有点甜 -- 发布时间:2014/7/28 14:11:00 -- 回复5楼,你用.net的时候,代码不合理吧?
保存数据的消耗,主要在连接数据库上,如果用事务或者一次性提交sql语句的话,速度会快几十倍的。 |
-- 作者:qq121454970 -- 发布时间:2014/7/28 15:03:00 -- 回复:(有点甜) 回复5楼,你用.net的时候,代码... 我就OPen了一次,然后循环批量执行sql,执行完之后在Close的 |
-- 作者:有点甜 -- 发布时间:2014/7/28 15:08:00 -- 回复7楼,那就不可能这么慢。你好好检查一下你的代码。 |
-- 作者:qq121454970 -- 发布时间:2014/7/29 8:02:00 -- 回复:(有点甜) 回复7楼,那就不可能这么慢。你... 好的,我晚上重写一个试试 |
-- 作者:lsy -- 发布时间:2014/7/29 8:51:00 -- 拼接InSert Into或Update语句,明显要快于狐表。 但拼接的语句过长,又不执行。
几万行的数据,可以每次提交1000行,利用计时器、多线程,自动执行,还不影响做其他工作。 |