5亿条记录插入SQL Server你知道要用多长时间吗?(200分)

  • 主题发起人 zerosoft
  • 开始时间
Z

zerosoft

Unregistered / Unconfirmed
GUEST, unregistred user!
我现在正在做的一个项目要将5亿条记录插入到数据库中,试了一下算下来要需要100多个
小时,这是客户所不能接受的,请问用什么方法可以改进?
 
大哥,我是乡下人进城,见见世面先。
 
将数据分批或分类处理。
 
你做什么的?怎么会要一次插入这么多数据,这用什么数据库也吃不消,
这要改进也只能改进业务,避免出现这种情况。
 
用存储过程,缩小时间!
 
厉害,是不是人中普查呀
 
运用存储器,加线程.千万不要用到自上而下的循环
insert 目标表(字段1,....) select * frpm 源表
 
这很正常啊,
想想5亿条记录数据有多大,就算没有什么数据库服务器,就是写文件也要写好一会的
 
异步模式,多层结构
 
内存有多大,硬盘有多大
cpu有多快
分时,分段,分类,慢慢插
不可能一下子就插进去了
 
再说明一下,这些数据是从另外一个二进制文件来的,这些二进制数据需要经过分解处理
再插入的,而且必须是5亿条记录全部都要插入进去才能做后面的工作,这些数据是从数据
采集器上下载下来的,然后将二进制数据处理之后做分析之用的
 
我的CPU是P4 1.4G,硬盘是IBM 40G 7200转,内存是128M,操作系统是win2k,开发工具是
delphi6,数据库是SQL Server 2000
 
你的硬件配置也不算高,也就是pc中一般的了.
为什么一定要一次处理完呢?分次写完再执行后面的工作不是一样么?

 
使用存储过程.
另外,机器的配置也要提高些吧,内存太小了.
 
最好使用数据库自带的导入工具,写SQL应该不行
另外你的机器配置内存太少了,起码要个512M吧?
 
你的采集器用了多长的时间把这5亿条数据采集下来的,如果是在一秒之内,那就没办法了
你只能等着这5亿条数据往数据库里写了,最多也就是优化一下,不会很快写完的,因为数据
太多了,如果你的采集器也是用了很长时间采集下来的话,那为什么不一边采集一边写到
数据库里呢,这样就可以了吧,你也不可能一下把这5亿条数据都提出来看吧,要是我,打死
我我也不这么看,会累死的。
 
看一下sql的bcp工具是否能满足你的要求
 
可能设计不合理还是业务必须的
 
5亿!!!在程序中执行插入!!还要先分析!
客户没法受的了!估计没办法了! 找别的变通途径吧。
 
顶部