为何AddNew的执行速度比Insert Into快多了? 用Insert Into语句插入1万条记录大概要45s,而用AddNew只要4s;这是为什么?查了网上的资料都说Insert比AddNew快,但实际却相反?大家在一条条插入大量数据时一般通过什么方法? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 到底哪个速度快我没有测试过,不过我觉得还是用Insert好一点,最起码你可以多熟悉SQL,养成好的编程习惯,我自己觉得AddNew方法内部还是用的Insert,你是怎么测试的? AddNew之后还要设置字段的值,设完了之后Update,可能还要commit transaction…… 习惯使用Insert 没有比较过哪一个更快 可能加上update后,Insert会快。你既然测试了,就相信测试结果,书上的未必正确。“实践是检验真理的唯一标准” 这么巧,我前天也测试了,addnew确实比Inster快10倍左右。好像多次inster就要多次重复分析sql语句而addnew不考虑率这么多,仅仅add 大部分情况insert快,可以去sql server版问问邹建 你不会是每次都生成一个对象insert 吧 肯定是insert 快 操作的是Access数据库,由于是一条条插入,肯定是要每一条生成一个InSert语句的结果就是AddNew比Insert快多了 我感觉如果一次插入大量记录是AddNew 快,记录少时则是Insert快。 没测试过!!一直都用addnew方便啊!!! 当然addnew快了,调用insert时数据库每次都要对SQL语句进行语法检查分析 insert 大量数据如果不是一个个的弄是不是好点? 比如insert **** where **的那种是不是比add快呢? 我估计add优化了吧? 快?你的记时参考点是什么?记录集做更新操作不可能比SQL快,之所以微软引入这个对象是为了方便使用SELECT的返回数据,可不是为了用它做记录更新操作的,虽然可以做。效率低、占用资源大。 不大可能,你的测试代码应该有问题addnew 内部就是用 Insert 操作的快可能因为Cache 在客户端而没有真正更新到服务器你可以帖出测试代码大家论证 贴出测试代码,请不相信的朋友测试一下http://www.easewe.com/SoftWare/downSoft.aspx?software=27&from=fromother sorry发错了,这个才是对的http://www.easewe.com/SoftWare/downSoft.aspx?id=27&from=fromother 我也是用AddNew大大提高了插入速度,数据库是access 一个表有100多万行数据,用insert明显慢了很多其它数据库是否这样就不知道了,SQL,DB2,..,等大型数据库我还是用insert 在我的映象中addnew快,我原来也是测试过不过,我也觉得可能是我们的参数有问题因为我看见别人的代码中 insert用得比较多,但我想别人水平比我强,怎么会范这样的错误还有也没有什么网文说这个问题 你的代码使用的是 DAO,他是专门针对 Access 优化的,使用 DAO 的Addnew 确实比 Insert 快,但这必须局限于本地 表操作 情况下 ,即 dbOpenTable 参数下.但对于 ADO ,Access : Insert 和 Addnew 的速度是差不多的,而 SQL server 下,Insert 比 Addnew 要快一点我已经做过测试在 ADO 即将要淘汰之际,想不到还有人要用DAO,晕啊看到 ADO.Net 的 DataSet 你就会知道什么是慢了 我的我Blog 有些关于优化的心得,欢迎参光指教http://blog.csdn.net/zlt982001/ 就算用ADO,AddNew方法比InSert方法快多了--------------对11602条记录进行操作,ADO和DAO,AddNew和InSert方法的速度测试如下:DAO:AddNew:10s InSert:33sADO:AddNew:20s InSert:46s----------------------觉得上面的结果不可信的,可再到这个地址下载测试程序:http://www.easewe.com/SoftWare/downSoft.aspx?id=27&from=fromother 当数据库为 Access 时,使用 AddNew 确实比 Insert 快一点当然如果你只是使用 单机的数据库,直接使用 RecordSet 更快,但是 在SQL Server 情况下,使用 Insert 比 使用 RecordSet 快一点我修改了你的例子,加入了 Command 来执行 SQL 语句,http://www.federal.net.cn/newtest.rar基本上是这样了,现在基本上很少使用 Access 数据库了 执行前请将 Data 中的两个数据库附加到 SQL Server 中 项目要求用ACCESS,用SQLSERVER不行啊 而且用你的程序执行出来对SqlServer的结果是Insert用了22s,AddNew用了33s还是比用addnew对access插入慢多了啊 写这么多,只是想论证这个数据库操作的效率问题,(包括Access和SQLServer)至于你实际要怎么用,取决于你自己 而且用你的程序执行出来对SqlServer的结果是Insert用了22s,AddNew用了33s还是比用addnew对access插入慢多了啊====================================不要把Access和SQL Server进行比较在小数量情况下,插入 Access速度会比SQL Server快些,但是大数据量网络情况下,就是SQL Server快了,一个曲线下降很快,一个曲线基本不变的。 关于网页中添加ActiveX控件 MsHFlexGrid修改数据问题! Appendchunk函数如何使用? C/S与B/S开发 VB6如何实现聊天室中屏遮文字的目的? 怎样从数据库中读出图片100分急 几个real控件在同一个窗体中播放不同节目 这段代码有什么问题? 如何在ASP中动态更改ACTIVEX的属性知,或调用他的方法? 如何用把sql server中的表转换为 foxpro中的DBF格式。谢谢 如何让程序只能在一台机器上安装使用后,就不能在另一台机器上使用了? 关于串口接收控件数据出错的问题!急!!!
你既然测试了,就相信测试结果,书上的未必正确。
“实践是检验真理的唯一标准”
好像多次inster就要多次重复分析sql语句
而addnew不考虑率这么多,仅仅add
方便啊!!!
记录集做更新操作不可能比SQL快,之所以微软引入这个对象是为了方便使用SELECT的返回数据,可不是为了用它做记录更新操作的,虽然可以做。效率低、占用资源大。
addnew 内部就是用 Insert 操作的快可能因为Cache 在客户端而没有真正更新到服务器
你可以帖出测试代码
大家论证
http://www.easewe.com/SoftWare/downSoft.aspx?software=27&from=fromother
一个表有100多万行数据,用insert明显慢了很多其它数据库是否这样就不知道了,SQL,DB2,..,等大型数据库我还是用insert
addnew快,我原来也是测试过
不过,我也觉得可能是我们的参数有问题
因为我看见别人的代码中 insert用得比较多,
但我想别人水平比我强,怎么会范这样的错误
还有也没有什么网文说这个问题
他是专门针对 Access 优化的,使用 DAO 的Addnew 确实比 Insert 快,
但这必须局限于本地 表操作 情况下 ,即 dbOpenTable 参数下.
但对于 ADO ,Access : Insert 和 Addnew 的速度是差不多的,
而 SQL server 下,Insert 比 Addnew 要快一点
我已经做过测试
在 ADO 即将要淘汰之际,想不到还有人要用DAO,晕啊
看到 ADO.Net 的 DataSet 你就会知道什么是慢了
http://blog.csdn.net/zlt982001/
--------------
对11602条记录进行操作,ADO和DAO,AddNew和InSert方法的速度测试如下:
DAO:AddNew:10s
InSert:33sADO:AddNew:20s
InSert:46s
----------------------
觉得上面的结果不可信的,可再到这个地址下载测试程序:
http://www.easewe.com/SoftWare/downSoft.aspx?id=27&from=fromother
当然如果你只是使用 单机的数据库,直接使用 RecordSet 更快,
但是 在SQL Server 情况下,使用 Insert 比 使用 RecordSet 快一点
我修改了你的例子,加入了 Command 来执行 SQL 语句,http://www.federal.net.cn/newtest.rar基本上是这样了,现在基本上很少使用 Access 数据库了
至于你实际要怎么用,取决于你自己
====================================不要把Access和SQL Server进行比较在小数量情况下,插入 Access速度会比SQL Server快些,但是大数据量网络情况下,就是SQL Server快了,一个曲线下降很快,一个曲线基本不变的。