超级菜菜鸟请教一个问题,利用VC编写程序,往 SQLserver 2000 的一个表中 插入 记录。表字段如下:ID    NAME     AGE     CLASS    ADDRESS
表记录的来源:我从用户自定义的文件中读取的(有自定义的数据结构)。目标:俺要的效果是:在5分钟内,需要插入2400万条记录,  这个操作其实很简单,就是插入数据,但是需要效率啊,可真是难死俺了。。55555 各位大侠、大哥、姐姐、老兄、老弟、老妹,帮帮俺吧,小弟在此先敬礼了

解决方案 »

  1.   


    用BULK insert 是不是还需要将数据设置成一定的格式,然后写入到一个。txt文件中啊,这个写txt文件的操作 很是很耗时的啊
      

  2.   

    在mysql 中,我就用普通的insert into table values (),()就能实现一秒钟3w记录不知道sql server 行不行
      

  3.   

    insert into ... select ..... from ....
      

  4.   

    那麻烦问一下:sqlserver 一般的插入速度能达到多少啊?每秒 1000条记录?10000条记录?
     
      

  5.   

    以前搞过一个项目,小型机+ORACLE10G  8G内存    也达不到楼主的要求。。
      

  6.   

    .net使用BULK INSERT,分10次每次10万插入100万测试数据~执行结果Elapse Time is 12769 MilliSeconds
    Elapse Time is 19742 MilliSeconds
    Elapse Time is 26663 MilliSeconds
    Elapse Time is 34005 MilliSeconds
    Elapse Time is 41264 MilliSeconds
    Elapse Time is 48321 MilliSeconds
    Elapse Time is 55212 MilliSeconds
    Elapse Time is 64567 MilliSeconds
    Elapse Time is 71492 MilliSeconds
    Elapse Time is 78539 MilliSeconds
      

  7.   

    按你这个表的大小,每条记录大小约为120字节,24000*10000*120 /(1024*1024*1024)约为2.7G
    就算在硬盘上复制文件,每秒也需要9.1M的速度进行复制才可能完成。这个速度似乎是普通硬盘的极限吧,当然服务器用RAID或其它的会更快。