最近做某项目的数据库分析,要实现对海量数据的导入问题,就是最多把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表中。

更多相关文章

  1. 小米:最快11月底或12月初推出 Android(安卓)4.0 版 MIUI
  2. 互动网站建设,如何操作,海量模板一站式建站
  3. 情感类短视频怎么样吸粉是最快的?
  4. 【海量数据学院】DBA的学习方法论系列—正确的学习方法
  5. 大数据技术完美地解决了海量数据问题,可为何还要搭建数据平台?
  6. 秒级去重:ClickHouse在腾讯海量游戏营销活动分析中的应用
  7. 实战:利用GPU计算海量数据
  8. 海量数据处理之bitmap
  9. 微信海量数据监控的设计与实践

随机推荐

  1. Android manifest属性总结
  2. android——ListView功能的实现
  3. android屏幕旋转在framework中的修改。
  4. Android -- Toolbar跟随ListView滑动隐藏
  5. android 笔记handler
  6. Android搜索视媒体库视频 列表显示选择
  7. android主线程中Looper.loop()为什么不会
  8. Android(安卓)Device Monitor 报 open fa
  9. Android ant 打包 ant -f build.xml rele
  10. android中SimpleCursorAdapter _id错误的