关于大批量数据高效插入方法
作者:无殇 来源:51js 时间:2010-07-31 19:07:00
没事在这里发一下关于数据库大批量插入数据的效率对比,用ACCESS和MSSQL,数值是在本机测试,根据不同的环境和配置,数值可能会有较大差别,大家看个对比就行了,别精打细算了。
使用Insert into方法插入
数据库 插入数 花费时间(单位:ms)
Access 1000次 672
Access 10000次 5610
MSSQL 1000次 610
MSSQL 10000次 5579
速度基本差不多,同样在解析语法上花费了很多时间
使用Addnew方法插入
数据库 插入数 花费时间(单位:ms)
Access 1000次 187
Access 10000次 1172
MSSQL 1000次 828
MSSQL 10000次 6719
速度明显有差距了,按道理说MSSQL速度应该比较快的,可能是因为MSSQL的LOG造成的影响吧
使用事务进行插入的效率对比
使用事务进行Insert into方法插入
数据库 插入数 花费时间(单位:ms)
Access 1000次 563
Access 10000次 4625
MSSQL 1000次 281
MSSQL 10000次 2183
使用事务的话,ACCESS与MSSQL的速度都有明显提高,但是MSSQL提高更突出
使用事务进行Addnew方法插入
数据库 插入数 花费时间(单位:ms)
Access 1000次 188
Access 10000次 1187
MSSQL 1000次 469
MSSQL 10000次 3875
看得出来,Access在使用事务情况下,Insert into效率提高还是比较明显,但是Addnew基本上变,原因可能是Addnew本身就是一种预解析模式,在整个插入过程中不需要语法解析,事务的批量提交优势也就没那么大了
最后来测试一下MSSQL的存储过程
不使用事务进行插入
数据库 插入数 花费时间(单位:ms)
MSSQL 1000次 375
MSSQL 10000次 3547
使用事务进行插入
数据库 插入数 花费时间(单位:ms)
MSSQL 1000次 187
MSSQL 10000次 1265
结果很明显,使用MSSQL进行大数据量插入,最好使用事务功能,这样效率提高一倍多。
使用Insert Into无论是ACCESS还是MSSQL效率都是一样慢,但是MSSQL用事务的话,效率还可以接受,ACCESS就不行了。
使用Addnew进行插入,ACCESS最适合这种方式,无论使不使用事务,效率差距不大,但是MSSQL就不建议这种方式了,怎么搞MSSQL在Addnew插入效率都很低。
综合以上考虑,在插入效率最高的要求下,ACCESS使用带事务的Addnew插入,MSSQL则使用带事务的存储过程
![](/images/zang.png)
![](/images/jiucuo.png)
猜你喜欢
闲谈CSS3动画
![](https://img.aspxhome.com/file/UploadPic/20105/7/t1ztvzxxhdxxxxxxxx-226-58-35s.png)
关联的 script 标签
正则表达式学习笔记
在MySQL中使用更新日志文件
asp如何制作一个搜索引擎链接程序?
sqlserver 脚本和批处理指令小结
编码问题引起的折腾
关于从MySQL转向ADODB的方法
JavaScript 中的 setAttribute
SQL Server 2000 清理日志精品图文教程
![](https://img.aspxhome.com/file/UploadPic/20127/21/2012721151417926.gif)
SQL学习笔记六 union联合结果集使用
SQL查询效率:100w数据查询只需要1秒钟
如何测试字符串的长度?
asp如何处理超时事件?
无忧 月影出书啦《JavaScript王者归来》
![](https://img.aspxhome.com/file/UploadPic/20081/9/200819135150291s.gif)
设计需知:移动网站设计应注意的技术细节
![](https://img.aspxhome.com/file/UploadPic/20124/20/1334303125911-96s.jpg)