关于大批量数据高效插入方法

作者:无殇 来源: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则使用带事务的存储过程

标签:批量,插入数据,access,mssql
0
投稿

猜你喜欢

  • 闲谈CSS3动画

    2010-05-07 12:34:00
  • 关联的 script 标签

    2009-11-02 10:40:00
  • 正则表达式学习笔记

    2008-04-15 07:44:00
  • 在MySQL中使用更新日志文件

    2009-02-26 16:22:00
  • asp如何制作一个搜索引擎链接程序?

    2010-07-07 12:26:00
  • sqlserver 脚本和批处理指令小结

    2012-05-22 18:56:55
  • 编码问题引起的折腾

    2009-07-03 12:43:00
  • 关于从MySQL转向ADODB的方法

    2011-06-02 12:05:00
  • JavaScript 中的 setAttribute

    2008-08-18 13:08:00
  • SQL Server 2000 清理日志精品图文教程

    2012-07-21 14:31:17
  • SQL学习笔记六 union联合结果集使用

    2011-09-30 11:34:27
  • SQL查询效率:100w数据查询只需要1秒钟

    2008-12-09 14:36:00
  • 如何测试字符串的长度?

    2009-11-11 20:02:00
  • asp如何处理超时事件?

    2009-11-14 20:41:00
  • 无忧 月影出书啦《JavaScript王者归来》

    2008-01-09 13:45:00
  • 设计需知:移动网站设计应注意的技术细节

    2012-04-20 13:03:23
  • 再谈“字符串拼接”的效率

    2009-04-30 12:48:00
  • XAMPP和Mysql共存的方法

    2010-12-03 16:34:00
  • web标准:CSS clear的属性及使用方法

    2008-10-27 13:31:00
  • [原创][分享]数字格式化转换

    2011-07-04 12:20:15
  • asp之家 网络编程 m.aspxhome.com