CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
山寨机中的战斗机! 程序优化工程师到底对IT界有没有贡献
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  MS-SQL Server >  基础类

将近10万条的记录,有没比逐条insert快的方法

楼主mathnokia(为之)2006-06-03 19:19:39 在 MS-SQL Server / 基础类 提问

我的程序搜索一些信息,  
  这些信息的内容是长度为20到300的字符串,  
  如:  
  ftp://192.168.32.12/movie/kingkong/all.rmvb  
  ftp://192.168.51.6/电影/中国/香港/周星驰/功夫/01.rmvb  
  ...  
  一般情况下,总共有近10万条记录  
   
  我的程序现在是搜索到一条记录,马上就insert如数据库,然后继续搜索,  
  我感觉速度上有点慢  
   
  如果将搜索到的记录全部写到文本文件中,等搜索结束之后再一次性写入数据库。  
  这样行不?  
  速度会不会比逐条insert快呢?  
   
  谢谢 问题点数:50、回复次数:7Top

1 楼wangtiecheng(不知不为过,不学就是错!)回复于 2006-06-03 19:22:55 得分 0

写到文本文件中后,直接用DTS导入即可。Top

2 楼zjcxc(邹建)回复于 2006-06-03 20:59:47 得分 0

为什么不直接用  
  insert   tb   select   ...   from   xx   where   ....  
   
  呢?Top

3 楼ppact(天下有雪)回复于 2006-06-03 22:15:48 得分 0

邹老大的方法应该不错的,批插入Top

4 楼playwarcraft(时间就像乳沟,挤挤还是有的)回复于 2006-06-03 23:00:00 得分 0

我觉得还是先导成txt文档,然后用DTS,便于维护吧Top

5 楼loveangela(非留不可)回复于 2006-06-04 10:59:34 得分 0

如果是在不同的数据库间   就不好用insert   tb..     select   ...   from   table  
    ,   如何快速插入数据呢?  
  写到文本文件中后,直接用DTS导入   我之前试过,仍然是比较慢的。  
  不知大家有何意见!  
  Top

6 楼filebat(Mark)回复于 2006-06-06 11:13:53 得分 50

我感觉楼主的意思是:数据是程序一条一条慢慢产生的。  
  他不想每产生一条记录就插入到数据库中,而想等到达一定量后,再插入到数据库中。  
  这样可以减少I/O读取次数。  
   
  所以觉得邹老大的insert   tb   select   ...   from   xx   where   ....应该不行吧。  
   
  但是,我想如果每条记录都写到txt文档中,然后再bcp或DTS到数据库中,   这样的做法应该也不会快到哪里吧。  
   
  因为I/O次数不但没有减少,反而增加了。  
   
  呵呵,   我也没什么好的方法。要不在内存中维护一张类似中间表。记录先插入到内存的中间表中,等数据到一定数量时,然后再写到数据库去。  
  这样,用空间来换时间,   应该快点。  
   
  不知道诸位老大,有何高见。Top

7 楼LiveAsUWant()回复于 2006-06-06 11:23:00 得分 0

楼上:呵呵,   我也没什么好的方法。要不在内存中维护一张类似中间表。记录先插入到内存的中间表中,等数据到一定数量时,然后再写到数据库去。  
  这样,用空间来换时间,   应该快点  
   
  中间表可以用临时表,个人认为临时表相当于内存表  
  CREATE   TABLE   #Tmp  
  再用  
  insert   tb   select   ...   from   #Tmp  
   
  应该会快   我以前试过Top

相关问题

关键词

得分解答快速导航

  • 帖主:mathnokia
  • filebat

相关链接

  • SQL Server类图书

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo