SQL Server海量数据导入的最简洁的操作方法

此文章主要向大家讲述的是SQL Server海量数据导入的最简洁的操作方法,我前两天在相关网站看见SQL Server海量数据导入的最简洁的操作方法的资料,觉得挺好,就拿出来供大家分享。

这篇文章主要讲解了实现SQL Server海量数据导入的最快的方法,其更多内容请参考下文:最近做某项目的数据库分析,其主要目的要实现对海量数据的导入问题,就是最多把200万条数据一次导入sqlserver中,如果使用普通的insert语句。

这篇论坛文章赛迪网技术社区)详细讲解了SQL Server海量数据导入的最快方法,更多内容请参考下文:

最近做某项目的数据库分析,要实现对海量数据的导入问题,就是最多把200万条数据一次导入sqlserver中,如果使用普通的insert语句进行写出的话,恐怕没个把小时完不成任务,先是考虑使用bcp,但这是基于命令行的,对用户来说友好性太差,实际不大可能使用;

最后决定使用BULK INSERT语句实现,BULK INSERT也可以实现大数据量的导入,而且可以通过编程实现,界面可以做的非常友好,它的速度也很高:导入100万条数据不到20秒中,在速度上恐怕无出其右者。

但是使用这种方式也有它的几个缺点:

1.需要独占接受数据的表

2.会产生大量的日志

3.从中取数据的文件有格式限制

但相对于它的速度来说,这些缺点都是可以克服的,而且你如果愿意牺牲一点速度的话,还可以做更精确的控制,甚至可以控制每一行的插入。

对与产生占用大量空间的日志的情况,我们可以采取在导入前动态更改数据库的日志方式为大容量日志记录恢复模式,这样就不会记录日志了,导入结束后再恢复原来的数据库日志记录方式。

具体的一个语句我们可以这样写:

 
 
  1. alter database taxi  
  2. set RECOVERY BULK_LOGGED  
  3. BULK INSERT taxi..detail FROM 'e:\out.txt'  
  4. WITH (  
  5. ?? DATAFILETYPE = 'char',  
  6. ?? FIELDTERMINATOR = ',',  
  7. ?? ROWTERMINATOR = '\n',  
  8. ?TABLOCK  
  9. )  
  10. alter database taxi  
  11. set RECOVERY FULL  

这个语句将从e:\out.txt导出数据文件到数据库taxi的detail表中。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值