12 个解决方案
#1
做成存储过程,再把所有的要写入数据库的记录,集合成字符串,发到SQL内让SQL Server自动执行处理
#2
什麼樣的環境下。沒有環境,沒得談
#3
是呀,你的数据来源呢?如果从Excel里获取,建议读一行写一行,不占用内容,如果是从TXT中读取,也是按块或标志符读取,写一串,写一行,效率较高。
#4
不要采用SQL语句执行的方式写数据库
为什么呢?
这是因为你用SQL语句执行,就等于进行了
打开数据库连接
执行临时SQL语句
写入数据库
这样一次过程
如果循环使用SQL语句执行insert into,就会不停的重复上述过程。
那么用
这种方式呢?
我们就省略了很多次打开数据库和关闭数据库。
速度会有明显的提升。
为什么呢?
这是因为你用SQL语句执行,就等于进行了
打开数据库连接
执行临时SQL语句
写入数据库
这样一次过程
如果循环使用SQL语句执行insert into,就会不停的重复上述过程。
那么用
rs.open
'循环
re.value=""
'循环结束
rs.update
这种方式呢?
我们就省略了很多次打开数据库和关闭数据库。
速度会有明显的提升。
#5
抱歉,上次没写清楚。我的开发环境是VB6.0,数据来源是硬盘上的二进制文件(存放的是大量的数据采集结果),我先把二进制文件分批读到数组中,再写入SQL数据库。
#6
不仅是写入慢,可能处理那堆二进制文件也快不到哪去。
#7
我用timeGettime()函数跟踪检测过,处理二进制文件很快,但写数据库的速度奇慢(1M数据大概要10分钟左右).
#8
分块读取,分块写
#9
把写数据的操作放在同一个事务中去执行(前提是数据库支持事务)。
#10
我是把二进制文件分批读到数组中的,不就是按块吗。经实测,往数据库写入一条记录的平均时间是1.3ms左右,慢在“写”操作!能提速吗?xomix先生建议用VBScript code,效率怎样?能否说的详细点?我没接触过VBScript!
#11
是远程数据库?还是本机数据库?
如果是远程的,网络速度也是一个挺大的问题。
另外,您写的数据是到 二进制字段 中吧,写到 这种字段中的确会很慢,如果数据量大,有时还写不进去。
如果是远程的,网络速度也是一个挺大的问题。
另外,您写的数据是到 二进制字段 中吧,写到 这种字段中的确会很慢,如果数据量大,有时还写不进去。
#12
用ActivcX编一个写数据库的程序,用主程序调用多个ActivcX Exe对象,也就是说用多进程来进行网络传输写数据库(每个完成一部分),这种方法对速度的提高应较明显。
#1
做成存储过程,再把所有的要写入数据库的记录,集合成字符串,发到SQL内让SQL Server自动执行处理
#2
什麼樣的環境下。沒有環境,沒得談
#3
是呀,你的数据来源呢?如果从Excel里获取,建议读一行写一行,不占用内容,如果是从TXT中读取,也是按块或标志符读取,写一串,写一行,效率较高。
#4
不要采用SQL语句执行的方式写数据库
为什么呢?
这是因为你用SQL语句执行,就等于进行了
打开数据库连接
执行临时SQL语句
写入数据库
这样一次过程
如果循环使用SQL语句执行insert into,就会不停的重复上述过程。
那么用
这种方式呢?
我们就省略了很多次打开数据库和关闭数据库。
速度会有明显的提升。
为什么呢?
这是因为你用SQL语句执行,就等于进行了
打开数据库连接
执行临时SQL语句
写入数据库
这样一次过程
如果循环使用SQL语句执行insert into,就会不停的重复上述过程。
那么用
rs.open
'循环
re.value=""
'循环结束
rs.update
这种方式呢?
我们就省略了很多次打开数据库和关闭数据库。
速度会有明显的提升。
#5
抱歉,上次没写清楚。我的开发环境是VB6.0,数据来源是硬盘上的二进制文件(存放的是大量的数据采集结果),我先把二进制文件分批读到数组中,再写入SQL数据库。
#6
不仅是写入慢,可能处理那堆二进制文件也快不到哪去。
#7
我用timeGettime()函数跟踪检测过,处理二进制文件很快,但写数据库的速度奇慢(1M数据大概要10分钟左右).
#8
分块读取,分块写
#9
把写数据的操作放在同一个事务中去执行(前提是数据库支持事务)。
#10
我是把二进制文件分批读到数组中的,不就是按块吗。经实测,往数据库写入一条记录的平均时间是1.3ms左右,慢在“写”操作!能提速吗?xomix先生建议用VBScript code,效率怎样?能否说的详细点?我没接触过VBScript!
#11
是远程数据库?还是本机数据库?
如果是远程的,网络速度也是一个挺大的问题。
另外,您写的数据是到 二进制字段 中吧,写到 这种字段中的确会很慢,如果数据量大,有时还写不进去。
如果是远程的,网络速度也是一个挺大的问题。
另外,您写的数据是到 二进制字段 中吧,写到 这种字段中的确会很慢,如果数据量大,有时还写不进去。
#12
用ActivcX编一个写数据库的程序,用主程序调用多个ActivcX Exe对象,也就是说用多进程来进行网络传输写数据库(每个完成一部分),这种方法对速度的提高应较明显。