• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    SQL Server 海量数据导入的最快方法
    最近做某项目的数据库分析,要实现对海量数据的导入问题,就是最多把200万条数据一次导入sqlserver中,如果使用普通的insert语句进行写出的话,恐怕没个把小时完不成任务,先是考虑使用bcp,但这是基于命令行的,对用户来说友好性太差,实际不大可能使用;最后决定使用BULK INSERT语句实现,BULK INSERT也可以实现大数据量的导入,而且可以通过编程实现,界面可以做的非常友好,它的速度也很高:导入100万条数据不到20秒中,在速度上恐怕无出其右者。
    但是使用这种方式也有它的几个缺点:
    1.需要独占接受数据的表
    2.会产生大量的日志
    3.从中取数据的文件有格式限制
    但相对于它的速度来说,这些缺点都是可以克服的,而且你如果愿意牺牲一点速度的话,还可以做更精确的控制,甚至可以控制每一行的插入。
    对与产生占用大量空间的日志的情况,我们可以采取在导入前动态更改数据库的日志方式为大容量日志记录恢复模式,这样就不会记录日志了,导入结束后再恢复原来的数据库日志记录方式。
    具体的一个语句我们可以这样写: 
    复制代码 代码如下:

    alter database taxi
    set RECOVERY BULK_LOGGED
    BULK INSERT taxi..detail FROM 'e:\out.txt'
    WITH ( 
    DATAFILETYPE = 'char', 
    FIELDTERMINATOR = ',', 
    ROWTERMINATOR = '\n',
    TABLOCK
    )
    alter database taxi
    set RECOVERY FULL

    这个语句将从e:\out.txt导出数据文件到数据库taxi的detail表中。
    上一篇:一条SQL语句搞定Sql2000 分页
    下一篇:SQL Select语句完整的执行顺序
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    SQL Server 海量数据导入的最快方法 SQL,Server,海量,数据,导入,