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

zjgno1 2008-01-18 04:34:45
我用ADO控件试过多种方法,但写入数据库的速度实在太慢,敬请指教!!
...全文
835 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
dingyanwei 2008-01-21
  • 打赏
  • 举报
回复
是远程数据库?还是本机数据库?

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

另外,您写的数据是到 二进制字段 中吧,写到 这种字段中的确会很慢,如果数据量大,有时还写不进去。
jwh2004 2008-01-21
  • 打赏
  • 举报
回复
用ActivcX编一个写数据库的程序,用主程序调用多个ActivcX Exe对象,也就是说用多进程来进行网络传输写数据库(每个完成一部分),这种方法对速度的提高应较明显。
zjgno1 2008-01-20
  • 打赏
  • 举报
回复
我是把二进制文件分批读到数组中的,不就是按块吗。经实测,往数据库写入一条记录的平均时间是1.3ms左右,慢在“写”操作!能提速吗?xomix先生建议用VBScript code,效率怎样?能否说的详细点?我没接触过VBScript!
jadeluo 2008-01-20
  • 打赏
  • 举报
回复
把写数据的操作放在同一个事务中去执行(前提是数据库支持事务)。
Phenlit 2008-01-20
  • 打赏
  • 举报
回复
分块读取,分块写
zjgno1 2008-01-20
  • 打赏
  • 举报
回复
我用timeGettime()函数跟踪检测过,处理二进制文件很快,但写数据库的速度奇慢(1M数据大概要10分钟左右).
dingyanwei 2008-01-20
  • 打赏
  • 举报
回复
不仅是写入慢,可能处理那堆二进制文件也快不到哪去。
zjgno1 2008-01-20
  • 打赏
  • 举报
回复
抱歉,上次没写清楚。我的开发环境是VB6.0,数据来源是硬盘上的二进制文件(存放的是大量的数据采集结果),我先把二进制文件分批读到数组中,再写入SQL数据库。
春天的气息 2008-01-19
  • 打赏
  • 举报
回复
是呀,你的数据来源呢?如果从Excel里获取,建议读一行写一行,不占用内容,如果是从TXT中读取,也是按块或标志符读取,写一串,写一行,效率较高。
cangwu_lee 2008-01-19
  • 打赏
  • 举报
回复
什麼樣的環境下。沒有環境,沒得談
  • 打赏
  • 举报
回复
不要采用SQL语句执行的方式写数据库
为什么呢?
这是因为你用SQL语句执行,就等于进行了

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

这样一次过程

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

那么用

rs.open
'循环
re.value=""
'循环结束
rs.update



这种方式呢?
我们就省略了很多次打开数据库和关闭数据库。
速度会有明显的提升。
Phenlit 2008-01-18
  • 打赏
  • 举报
回复
做成存储过程,再把所有的要写入数据库的记录,集合成字符串,发到SQL内让SQL Server自动执行处理

1,216

社区成员

发帖
与我相关
我的任务
社区描述
VB 数据库(包含打印,安装,报表)
社区管理员
  • 数据库(包含打印,安装,报表)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧