一个16M左右的文本文件,里面有60万行数据,使用Sql2005的导入向导,5秒钟左右导入完成。
而我写的导数据的程序却用了5分钟,差别为什么这么大呢?
我的程序的实现是:先将文本文件里每行数据读入一个Lis(这个速度还是很快的),然后循环用 Insert 语句插入,最后用事务提交。
Sql2005的导数据的工具用的是什么方法速度这么快?有没有导入大量数据的sql语句 相关的知识,给介绍介绍
SqlBulkCopy
专门用于大数据插入。
再用存储过程
再加上多线程,相信不会太慢,
SQL2005导数据,我估计它是在同一个进程内。你用SQL,涉及到进程间数据的交换。
使用储存过程应该会快点。
用导入工具导入时,估计是采用 BCP Copy 的方式,即类似楼上说的 BulkCopy ,速度很快。
你插入则不然。不过你可以将Insert 语句累计若干条后再调用程序一次插入多行,这样要快很多,你目前的方法,时间大量消耗在ADO.net接口调用上。