关于大批量数据高效插入方法
当前位置:点晴教程→知识管理交流
→『 技术文档交流 』
数据库大批量插入数据的效率对比,用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则使用带事务的存储过程。 该文章在 2011/2/26 10:14:25 编辑过 |
关键字查询
相关文章
正在查询... |