我的程序搜索一些信息,
这些信息的内容是长度为20到300的字符串,
如:
ftp://192.168.32.12/movie/kingkong/all.rmvb
ftp://192.168.51.6/电影/中国/香港/周星驰/功夫/01.rmvb
...
一般情况下,总共有近10万条记录我的程序现在是搜索到一条记录,马上就insert如数据库,然后继续搜索,
我感觉速度上有点慢如果将搜索到的记录全部写到文本文件中,等搜索结束之后再一次性写入数据库。
这样行不?
速度会不会比逐条insert快呢?谢谢
这些信息的内容是长度为20到300的字符串,
如:
ftp://192.168.32.12/movie/kingkong/all.rmvb
ftp://192.168.51.6/电影/中国/香港/周星驰/功夫/01.rmvb
...
一般情况下,总共有近10万条记录我的程序现在是搜索到一条记录,马上就insert如数据库,然后继续搜索,
我感觉速度上有点慢如果将搜索到的记录全部写到文本文件中,等搜索结束之后再一次性写入数据库。
这样行不?
速度会不会比逐条insert快呢?谢谢
insert tb select ... from xx where ....呢?
, 如何快速插入数据呢?
写到文本文件中后,直接用DTS导入 我之前试过,仍然是比较慢的。
不知大家有何意见!
他不想每产生一条记录就插入到数据库中,而想等到达一定量后,再插入到数据库中。
这样可以减少I/O读取次数。所以觉得邹老大的insert tb select ... from xx where ....应该不行吧。但是,我想如果每条记录都写到txt文档中,然后再bcp或DTS到数据库中, 这样的做法应该也不会快到哪里吧。因为I/O次数不但没有减少,反而增加了。呵呵, 我也没什么好的方法。要不在内存中维护一张类似中间表。记录先插入到内存的中间表中,等数据到一定数量时,然后再写到数据库去。
这样,用空间来换时间, 应该快点。不知道诸位老大,有何高见。
这样,用空间来换时间, 应该快点中间表可以用临时表,个人认为临时表相当于内存表
CREATE TABLE #Tmp
再用
insert tb select ... from #Tmp应该会快 我以前试过