为何AddNew的执行速度比Insert Into快多了?

dotnetjyh 2005-08-31 07:32:32
用Insert Into语句插入1万条记录大概要45s,而用AddNew只要4s;
这是为什么?查了网上的资料都说Insert比AddNew快,但实际却相反?

大家在一条条插入大量数据时一般通过什么方法?
...全文
650 39 打赏 收藏 转发到动态 举报
写回复
用AI写文章
39 条回复
切换为时间正序
请发表友善的回复…
发表回复
bbhere 2005-09-08
  • 打赏
  • 举报
回复
长知识
dotnetjyh 2005-09-08
  • 打赏
  • 举报
回复
还有没有好的解决方法的,没有就只好结贴了
dotnetjyh 2005-09-05
  • 打赏
  • 举报
回复
就算用ADO,AddNew方法比InSert方法快多了
--------------
对11602条记录进行操作,ADO和DAO,AddNew和InSert方法的速度测试如下:
DAO:AddNew:10s
InSert:33s

ADO:AddNew:20s
InSert:46s
----------------------
觉得上面的结果不可信的,可再到这个地址下载测试程序:
http://www.easewe.com/SoftWare/downSoft.aspx?id=27&from=fromother
ttjacky 2005-09-05
  • 打赏
  • 举报
回复
而且用你的程序执行出来对SqlServer的结果是Insert用了22s,AddNew用了33s

还是比用addnew对access插入慢多了啊
====================================

不要把Access和SQL Server进行比较

在小数量情况下,插入 Access速度会比SQL Server快些,但是大数据量网络情况下,就是SQL Server快了,一个曲线下降很快,一个曲线基本不变的。
zlt982001 2005-09-05
  • 打赏
  • 举报
回复
写这么多,只是想论证这个数据库操作的效率问题,(包括Access和SQLServer)
至于你实际要怎么用,取决于你自己
dotnetjyh 2005-09-05
  • 打赏
  • 举报
回复
而且用你的程序执行出来对SqlServer的结果是Insert用了22s,AddNew用了33s

还是比用addnew对access插入慢多了啊
dotnetjyh 2005-09-05
  • 打赏
  • 举报
回复
项目要求用ACCESS,用SQLSERVER不行啊
zlt982001 2005-09-05
  • 打赏
  • 举报
回复
记得修改 连接字符串中 服务器名 和 帐号密码
zlt982001 2005-09-05
  • 打赏
  • 举报
回复
执行前请将 Data 中的两个数据库附加到 SQL Server 中
zlt982001 2005-09-05
  • 打赏
  • 举报
回复
当数据库为 Access 时,使用 AddNew 确实比 Insert 快一点
当然如果你只是使用 单机的数据库,直接使用 RecordSet 更快,
但是 在SQL Server 情况下,使用 Insert 比 使用 RecordSet 快一点
我修改了你的例子,加入了 Command 来执行 SQL 语句,

http://www.federal.net.cn/newtest.rar

基本上是这样了,现在基本上很少使用 Access 数据库了
dotnetjyh 2005-09-04
  • 打赏
  • 举报
回复
有人看过吗?
zlt982001 2005-09-04
  • 打赏
  • 举报
回复
我的我Blog 有些关于优化的心得,欢迎参光指教
http://blog.csdn.net/zlt982001/
zlt982001 2005-09-04
  • 打赏
  • 举报
回复
你的代码使用的是 DAO,
他是专门针对 Access 优化的,使用 DAO 的Addnew 确实比 Insert 快,
但这必须局限于本地 表操作 情况下 ,即 dbOpenTable 参数下.
但对于 ADO ,Access : Insert 和 Addnew 的速度是差不多的,
而 SQL server 下,Insert 比 Addnew 要快一点
我已经做过测试
在 ADO 即将要淘汰之际,想不到还有人要用DAO,晕啊
看到 ADO.Net 的 DataSet 你就会知道什么是慢了
hlm750908 2005-09-04
  • 打赏
  • 举报
回复
在我的映象中
addnew快,我原来也是测试过
不过,我也觉得可能是我们的参数有问题
因为我看见别人的代码中 insert用得比较多,
但我想别人水平比我强,怎么会范这样的错误
还有也没有什么网文说这个问题
crycoming 2005-09-04
  • 打赏
  • 举报
回复
我也是用AddNew大大提高了插入速度,数据库是access
一个表有100多万行数据,用insert明显慢了很多

其它数据库是否这样就不知道了,SQL,DB2,..,等大型数据库我还是用insert
dotnetjyh 2005-09-03
  • 打赏
  • 举报
回复
sorry发错了,这个才是对的

http://www.easewe.com/SoftWare/downSoft.aspx?id=27&from=fromother
dotnetjyh 2005-09-03
  • 打赏
  • 举报
回复
贴出测试代码,请不相信的朋友测试一下
http://www.easewe.com/SoftWare/downSoft.aspx?software=27&from=fromother
zlt982001 2005-09-02
  • 打赏
  • 举报
回复
不大可能,你的测试代码应该有问题
addnew 内部就是用 Insert 操作的

快可能因为Cache 在客户端而没有真正更新到服务器
你可以帖出测试代码
大家论证

province_ 2005-09-02
  • 打赏
  • 举报
回复
快?你的记时参考点是什么?
记录集做更新操作不可能比SQL快,之所以微软引入这个对象是为了方便使用SELECT的返回数据,可不是为了用它做记录更新操作的,虽然可以做。效率低、占用资源大。
ltpao 2005-09-02
  • 打赏
  • 举报
回复
大量的是insert快
加载更多回复(19)

7,789

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧