您的位置:程序门 -> vb -> 数据库(包含打印,安装,报表)



在vb中,如何将大量数据快速写入sql server数据库?求速度!!!


[收藏此页] [打印本页]选择字色:背景色:字体:[][][]


在vb中,如何将大量数据快速写入sql server数据库?求速度!!!
发表于:2008-01-18 16:34:45 楼主
我用ado控件试过多种方法,但写入数据库的速度实在太慢,敬请指教!!
发表于:2008-01-18 18:25:451楼 得分:0
做成存储过程,再把所有的要写入数据库的记录,集合成字符串,发到sql内让sql   server自动执行处理
发表于:2008-01-19 01:21:502楼 得分:0
什麼樣的環境下。沒有環境,沒得談
发表于:2008-01-19 01:38:093楼 得分:0
是呀,你的数据来源呢?如果从excel里获取,建议读一行写一行,不占用内容,如果是从txt中读取,也是按块或标志符读取,写一串,写一行,效率较高。
发表于:2008-01-19 13:07:214楼 得分:0
不要采用sql语句执行的方式写数据库
为什么呢?
这是因为你用sql语句执行,就等于进行了

打开数据库连接
执行临时sql语句
写入数据库

这样一次过程

如果循环使用sql语句执行insert   into,就会不停的重复上述过程。

那么用
vbscript code
rs.open '循环 re.value="" '循环结束 rs.update



这种方式呢?
我们就省略了很多次打开数据库和关闭数据库。
速度会有明显的提升。
发表于:2008-01-20 17:27:235楼 得分:0
抱歉,上次没写清楚。我的开发环境是vb6.0,数据来源是硬盘上的二进制文件(存放的是大量的数据采集结果),我先把二进制文件分批读到数组中,再写入sql数据库。
发表于:2008-01-20 18:18:296楼 得分:0
不仅是写入慢,可能处理那堆二进制文件也快不到哪去。
发表于:2008-01-20 18:36:217楼 得分:0
我用timegettime()函数跟踪检测过,处理二进制文件很快,但写数据库的速度奇慢(1m数据大概要10分钟左右).
发表于:2008-01-20 18:37:488楼 得分:0
分块读取,分块写
发表于:2008-01-20 18:48:089楼 得分:0
把写数据的操作放在同一个事务中去执行(前提是数据库支持事务)。
发表于:2008-01-20 20:10:4410楼 得分:0
我是把二进制文件分批读到数组中的,不就是按块吗。经实测,往数据库写入一条记录的平均时间是1.3ms左右,慢在“写”操作!能提速吗?xomix先生建议用vbscript   code,效率怎样?能否说的详细点?我没接触过vbscript!
发表于:2008-01-21 09:34:2111楼 得分:0
是远程数据库?还是本机数据库?

如果是远程的,网络速度也是一个挺大的问题。

另外,您写的数据是到   二进制字段   中吧,写到   这种字段中的确会很慢,如果数据量大,有时还写不进去。
发表于:2008-01-21 14:24:5912楼 得分:0
用activcx编一个写数据库的程序,用主程序调用多个activcx   exe对象,也就是说用多进程来进行网络传输写数据库(每个完成一部分),这种方法对速度的提高应较明显。


快速检索

最新资讯
热门点击