请教各位,往SQL里面导入7000万行数据,应该怎么导?我试过直接用DTS导,但是由于日志的不断增长(日志到了几十G)导致硬盘空间不足最终失败。请问各位有没有什么好建议呢?

解决方案 »

  1.   

    alter database dbname set recovery bulk_logged
    然后再导入大容量日志记录恢复
    大容量日志记录恢复模型提供对媒体故障的防范,并对某些大规模或大容量复制操作提供最佳性能和最少的日志使用空间。下列操作为最小日志记录操作: SELECT INTO。
    大容量装载操作(bcp 和 BULK INSERT)。
    帮助 恢复模型 里有
      

  2.   

    SQL中放7000万条,有人做过?能实际用吗?
      

  3.   

    7000也太多了吧
    你是sql2000还是sql2005啊
    2000能承爱得了7000万吗?
    没试过
    以前我们公司最多一个月下来一两千万条数据,呵呵
      

  4.   


    BULK INSERT tablename FROM 'c:\\a.txt' with (FIELDTERMINATOR ='|',ROWTERMINATOR='\n')在sql2k里我导入过3亿条记录  速度很快
      

  5.   

    楼上的大哥,请问速度很快是多快?那个a.txt有多大?
      

  6.   

    a.txt 存成二进制的格式不会太大  
    而且分批去构造和执行   
    ~~~~ 我大概用了1个小时
      

  7.   

    昨天晚上安排了个DTS作业导入3500万行数据,用了3个小时;不过还是不敢试导入7000万行的那个表,怕晚上把服务器搞over了,那明天我就over了。
      

  8.   

    如果一张表有7000万,我想你的公司不会还用一块硬盘放数据吧,这个时候都是磁盘阵列了,硬盘空间不足,往里面增加空间就好或者向LS yjlhch(爱拼才会赢) 说的也行
      

  9.   

    我现在正在导那个7K万的表,硬件方面应该没有问题,数据文件和日志文件都放在SAN上。预算过它的表和索引大概会占用30G的空间,导入过程日志大概会增加10G左右。先按照comszsoft(星星点灯)的方法把数据库恢复模型改为bulk-logge以减少日志的增长。上天保佑,这个操作不要把服务器搞崩掉了……
      

  10.   

    昨晚开始DTS导那个表,用了9个小时,到今天早上导完,空间使用和原来估计的差不多,数据文件涨了30G左右,日志文件20G左右,不过那个服务器还有SAN估计被搞得够呛。今天中午重启一下服务器让它回回神。
      

  11.   

    回楼上的兄弟,这么大的数据量,查询效率当然非常差啦,不过还算可以出来结果就是了。
    现在这个现状,数据量对MSSQL来说已经很吃力了,是早晚要换的方案了,现在也只是苟延残喘死撑着,不过希望快点找到好的解决方案(大数据量数据同步),不然撑到哪天它崩溃的时候,就真的是太晚了。
      

  12.   

    用sql语句。。把txt所有的纪录都读出来做成游标。
    然后每条循环插入数据。。
    到一定的数据量后就清除一次日志。
    肯定能导入。就是不知道速度怎么样。