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

苹果跨年

苹果跨年

2016-02-19 10:33

下面图老师小编要跟大家分享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表中。
展开更多 50%)
分享

猜你喜欢

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

编程语言 网络编程
SQL Server 海量数据导入的最快方法

SQL Server导出导入数据方法

SQLServer
SQL Server导出导入数据方法

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

SQL Server导入、导出、备份数据方法

编程语言 网络编程
SQL Server导入、导出、备份数据方法

文本、Excel、Access数据导入SQL Server2000的方法

编程语言 网络编程
文本、Excel、Access数据导入SQL Server2000的方法

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

将MySQL数据导入到Sql Server中

编程语言 网络编程
将MySQL数据导入到Sql Server中

SQL Server数据库导入MySQL数据库体验

MySQL mysql数据库
SQL Server数据库导入MySQL数据库体验

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

SQL Server数据库的修复SQL语句

SQL Server数据库的修复SQL语句

Java 正则表达式详解

Java 正则表达式详解
下拉加载更多内容 ↓