首页 新闻 会员 周边

SQL Server 2005 导入大量数据速度问题

0
悬赏园豆:30 [已解决问题] 解决于 2009-08-18 14:40

一个16M左右的文本文件,里面有60万行数据,使用Sql2005的导入向导,5秒钟左右导入完成。

而我写的导数据的程序却用了5分钟,差别为什么这么大呢?

我的程序的实现是:先将文本文件里每行数据读入一个Lis(这个速度还是很快的),然后循环用 Insert 语句插入,最后用事务提交。

Sql2005的导数据的工具用的是什么方法速度这么快?有没有导入大量数据的sql语句 相关的知识,给介绍介绍

luotong的主页 luotong | 初学一级 | 园豆:4
提问于:2009-08-16 16:46
< >
分享
最佳答案
0

SqlBulkCopy

专门用于大数据插入。

再用存储过程 

再加上多线程,相信不会太慢,

收获园豆:20
不若相忘于江湖 | 初学一级 |园豆:51 | 2009-08-16 21:37
谢谢了,在网上搜了搜SqlBulkCopy,信息还挺多。问题已解,速度比以前提升几十倍
luotong | 园豆:4 (初学一级) | 2009-08-18 14:42
其他回答(2)
0

SQL2005导数据,我估计它是在同一个进程内。你用SQL,涉及到进程间数据的交换。

使用储存过程应该会快点。

麦舒 | 园豆:452 (菜鸟二级) | 2009-08-16 18:53
0

用导入工具导入时,估计是采用 BCP Copy 的方式,即类似楼上说的 BulkCopy ,速度很快。

你插入则不然。不过你可以将Insert 语句累计若干条后再调用程序一次插入多行,这样要快很多,你目前的方法,时间大量消耗在ADO.net接口调用上。

收获园豆:10
eaglet | 园豆:17139 (专家六级) | 2009-08-17 08:32
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册